Volumetric Display Research...1 Abstract The goal of this project was to research and develop a...

67
Volumetric Display Research A Major Qualifying Project Report Submitted to the Faculty of Worcester Polytechnic Institute In partial fulfillment of the requirements for the Degree of Bachelor of Science By: Andrew Santos Oliver Simon Advisor: Professor R. James Duckworth April 26, 2017

Transcript of Volumetric Display Research...1 Abstract The goal of this project was to research and develop a...

Page 1: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

VolumetricDisplayResearch

AMajorQualifyingProjectReport

SubmittedtotheFacultyof

WorcesterPolytechnicInstitute

Inpartialfulfillmentoftherequirementsforthe

DegreeofBachelorofScience

By:

AndrewSantos

OliverSimon

Advisor:

ProfessorR.JamesDuckworth

April26,2017

Page 2: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

1

AbstractThegoalofthisprojectwastoresearchanddevelopavolumetricdisplaysystemthatallowsathree-

dimensionalCADfiletobedisplayedinrealspace.ThesystemusedaXilinxZynqSoCtoprocessaCAD

modelintoaseriesoftwo-dimensionalimagestobeprojectedontoaspinninghelicoidsurfaceusing

DLPtechnology.TheSoCcontainedacombinationofcustomlogiconFPGAfabricaswellassoftwareon

anembeddedprocessortoimplementtheuniquesystemfunctionality.

Page 3: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

2

ExecutiveSummaryThree-dimensionaldisplaytechnologyisagrowingmarket,withapplicationsrangingfromthe

movieindustryandgaming,toengineeringdesign,medicine,andadvertising.Currently,many

technologiesarebasedontwo-dimensionalscreensandareusedwithspeciallensesorglassestocreate

three-dimensionalillusions,andthereisalackoftruethree-dimensionaldisplays.Thedevelopmentof

volumetricdisplaytechnologiesisanopportunitytofillthisgap.

Thisprojectresearchedanddevelopedavolumetricdisplaysystemthatcandisplaya3DCAD

modelinrealspace.Anembeddedend-to-endsolutionwasdesigned,howeverthefinalsystem

implementedperformedthemainprocessingonaPCinsteadofbeingembedded.Initialresearch

providedthenecessarybackgroundonvolumetricdisplaymethodsandtechniques,andtheprojectwas

basedonthemethodofprojectingontoaspinninghelicoidsurfacetocreateathree-dimensionalimage.

Thisisachievedbyprojectingthetwo-dimensionalintersectionsofa3Dmodelandhelicoidontothe

helicoidatthesamepositionofintersection.Asthesurfacespins,eachintersectioncorrespondingwith

thehelicoidpositionwillbeprojected,andathighspeeds,createsathree-dimensionalimage.A

simulationwasdevelopedinMATLABtoverifytheconceptandshowedsuccessfulresults.

Thesystemprocessesa.STLCADfileandgeneratestwo-dimensionalslicesthatareprojected

ontoaspinninghelicoidsurface.AnAvnetZedBoardwasusedasthemaindevelopmentplatform,which

featuresaXilinxZynq-7020System-on-Chip(SoC)withadual-coreARMCortexA9processorandXilinx

Artix-7FPGAfabric.TheutilizationofaSystem-on-Chip(SoC)providedanidealplatformtodevelopthe

customlogicandsoftwarerequiredforsuchasystem.Inaddition,aTexasInstrumentsLightCrafter

developmentboardwasusedtoprovidetheDLPtechnologycapableofmeetingtheframerate

requirementsofthesystem.

Thedesignedembeddedsystemcanbebrokenupintofourmainparts:theProgrammableLogic

(PL),ProcessingSystem(PS),projectionsystem,andmechanicalhardware.ThePLsystemwasdesigned

usingacombinationofcustomlogicandXilinxIPblockstocreatethememoryinterfaceandslice

processormodulesthatimplementthecoredataprocessingfunctionality,aswellastheencoder

calibrationmodulethatsynchronizesthemotorwiththeprojectedframes.Theprocessingsystemis

comprisedofmultiplefunctionallayers.ThelowestlayerrunningonthedualcoreARMprocessorofthe

ZynqisaLinuxoperatingsystemdesignedbyXilinxcalledPetaLinux.Petalinuxwaschosenforits

versatilityandinteroperabilitywiththeFPGAfabricandhardwaredesignsthereon.Theoperating

systemlayersupportstheembeddedsoftwarecreatedforBRAMaccess,voxelizationprocessing,and

imagegenerationfromrawslicedata.Finally,themechanicalsystemconsistsoftherotational

Page 4: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

3

hardware,theframe,andtherotaryencoder.TherotationalhardwareisdrivenbyaDCmotorthatcan

spinthehardwareataratefastenoughforasmoothprojection.Thishardwareincludesthehelical

projectionsurface,theencoderwheel,andthesteelshaftonwhichtheaforementionedpiecesare

mounted.Theencoderwheelhastwosetsofholesarrangedintwocirculartracks,atrackwithhome

positionsandageneralencodertrack.Usedintandem,thesetwosetsofholesarenecessarytotrack

theabsoluterotationalpositionofthemotor.Theencodercircuitryconsistsofphototransistorsand

infraredLEDsthatdetectwhenanewpositionhasbeenpassedduetoIRlightbeingsensedthroughthe

holesoftheencoderwheel.Theframewasconstructedofsteelchannel,withmountsforthemotor,

encodercircuitryhousing,andprojector.

Thedatapathofthedesignedembeddedsystembeginswithvoxelizationintheprocessing

system.Thisistheprocessofconvertingthe.STLmeshmodelintoagraphicalrepresentationin3D

spaceonathree-dimensionalgrid(x,y,z).ThisdataiswrittenintomemorytobeaccessedbythePL.

Fromthere,thePLsystemisenabledandthememoryinterfacereadsthevoxeldata,whichisthenfed

intothesliceprocessormodule.Thesliceprocessormodulecalculatesthetwo-dimensionalintersection

betweentheobjecttobedisplayedandeachhelixrotation,andtheslicedataiswrittenbackintoBRAM

bythememoryinterfacetobeaccessedinthePS.AnembeddedbitmapgenerationprograminthePS

thenreadstheslicedataandgenerates.bmpfilestobesenttotheLightCrafter.Onceallsliceimages

havebeengenerated,theLightCrafterisconfiguredinthePS,theencodermoduleisenabled,andthe

motorisswitchedon.Whentheencodermoduledetectsthehomeposition,theprojectioninitiates.The

LightCrafterutilizesaninputtrigger,displayingeachconsecutiveframeonlyonceitscorresponding

positionisdetectedbytheencodermodule,thusallowingasynchronizedsystemthatdisplaysathree-

dimensionalimage.

Theimplementedsystemsuccessfullycreatedavolumetricdisplaysystemthatconvertsa3D

CADfileintoathree-dimensionalimage,howeveraspectsoftheprocessingmoduleswereleftoff-board

duetotimingconstraintsandthescopeoftheproject.Inthedesignedsystem,thevoxelization,slicing,

andLightCrafterconfigurationwouldbeembeddedintheZynqSoC,howeverthisfunctionalitywaskept

onaPCusingMATLABforthevoxelizationandslicing,andaGUIprovidedbyTexasInstrumentsforthe

LightCrafterconfiguration.Thegoalssetforthemechanicalsystem,slicingalgorithm,voxelization

algorithm,projection,andmotorsynchronizationwereallindividuallymettocreatefunctional

componentsofavolumetricdisplay.TheZynqSoChasbeenproventobethebestplatformforthe

implementationoftheprojectduetoitsversatilityandperformance.Futureworkmightinclude

embeddingthevoxelizationalgorithmintothesystem,moreaccuratehandlingandconsiderationof

Page 5: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

4

projectiondistortion,aswellasimprovingtheconnectivitybetweenandtheeventuallytheunification

oftheZynqSoCandDLPhardware.Thiswouldresultinatrueend-to-endsystem.

Page 6: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

5

TableofContents

CHAPTER1:INTRODUCTION................................................................................................................9

CHAPTER2:BACKGROUND.................................................................................................................102.1VOLUMETRICDISPLAYCONCEPTS.............................................................................................................10

2.1.1SweptHelixApproach................................................................................................................102.1.2ModelProcessing......................................................................................................................11

2.2MOTORTECHNOLOGY...........................................................................................................................152.3PROJECTIONTECHNOLOGY.....................................................................................................................162.4HARDWAREPLATFORMOVERVIEW..........................................................................................................17

2.4.1ZedBoard...................................................................................................................................172.4.2LightCrafterEVM.......................................................................................................................20

CHAPTER3:ALGORITHMDEVELOPMENT&SYSTEMSIMULATION......................................................233.1DATAPROCESSINGFLOW.......................................................................................................................233.2VOXELIZATIONALGORITHM....................................................................................................................233.3SLICINGALGORITHM..............................................................................................................................253.4SYSTEMSIMULATION.............................................................................................................................26

CHAPTER4:SYSTEMDESIGN&IMPLEMENTATION.............................................................................294.1EMBEDDEDSYSTEMDESIGN...................................................................................................................294.2PROJECTION.........................................................................................................................................294.3PROCESSINGSYSTEM.............................................................................................................................31

4.3.1PetaLinux...................................................................................................................................324.3.2VoxelizationandPS-PLInterface...............................................................................................324.3.3LightCrafterAPI.........................................................................................................................334.3.4BitmapGeneration....................................................................................................................33

4.4PROGRAMMINGLOGIC...........................................................................................................................354.4.1Memory.....................................................................................................................................364.4.2SliceProcessor...........................................................................................................................364.4.3EncoderModule.........................................................................................................................394.4.4PSInterfaceandPLSystemIntegration.....................................................................................40

4.5MECHANICALSYSTEM............................................................................................................................434.6FINALSYSTEMIMPLEMENTATION.............................................................................................................47

CHAPTER5:SYSTEMTESTING&RESULTS...........................................................................................495.1PROCESSINGSYSTEM.............................................................................................................................49

5.1.1PetaLinux...................................................................................................................................495.1.2LightCrafterAPI.........................................................................................................................495.1.3BitmapGeneration....................................................................................................................49

5.2PROGRAMMABLELOGIC.........................................................................................................................505.2.1BRAMread/write.......................................................................................................................505.2.2SliceProcessor...........................................................................................................................525.2.3EncoderModule.........................................................................................................................58

5.3MECHANICALSYSTEM............................................................................................................................58

Page 7: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

6

5.4FULLSYSTEMTESTS...............................................................................................................................59

CHAPTER6:CONCLUSION...................................................................................................................626.1FUTUREWORK......................................................................................................................................63

REFERENCES.......................................................................................................................................64

APPENDICES.......................................................................................................................................66APPENDIXA:MATLABSIMULATIONCODE.....................................................................................................66APPENDIXB:LIGHTCRAFTERAPICODE..........................................................................................................66APPENDIXC:BITMAPGENERATIONCODE.......................................................................................................66APPENDIXD:SLICEMODULETESTCODE........................................................................................................66APPENDIXE:SLICEPROCESSORCODE.............................................................................................................66APPENDIXF:ENCODERMODULECODE..........................................................................................................66APPENDIXG:FULLPLSYSTEMCODE..............................................................................................................66APPENDIXH:WIRECOLORGUIDE.................................................................................................................66

Page 8: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

7

ListofFiguresFIGURE2-1-CUBEINTERSECTIONSWITHHELICOID[2]...........................................................................................................11FIGURE2-2-CUBEEXPRESSEDASVERTICES,EDGES,FACES[6].................................................................................................12FIGURE2-3-DOLPHINTRIANGLEMESH...............................................................................................................................12FIGURE2-4-STANFORDBUNNY3DMODEL.........................................................................................................................13FIGURE2-5-HELICOIDVOXELREPRESENTATION...................................................................................................................14FIGURE2-6-STANFORDBUNNYHELICOIDINTERSECTIONSLICES..............................................................................................14FIGURE2-7–ZEDBOARD..................................................................................................................................................18FIGURE2-8-ZYNQPLATFORMOVERVIEW............................................................................................................................19FIGURE2-9–ZEDBOARDPLATFORMOVERVIEW...................................................................................................................20FIGURE2-10-LIGHTCRAFTER............................................................................................................................................21FIGURE2-11–LIGHTCRAFTERDIAGRAM.............................................................................................................................22FIGURE3-1-DATAPROCESSING.........................................................................................................................................23FIGURE3-2-CARMESHMODEL........................................................................................................................................24FIGURE3-3-VOXELIZEDCARMODEL(UNMODIFIEDSCRIPT)....................................................................................................24FIGURE3-4-VOXELIZEDCARMODEL(MODIFIEDSCRIPT)........................................................................................................25FIGURE3-5-(A)20X20X20CARVOXELMODEL(B)20X20X20HELIXVOXELMODEL(C)20X20CARSLICE.......................................26FIGURE3-6-ROTATEDHELIXMODELS.................................................................................................................................26FIGURE3-7-3DINTERSECTIONS.........................................................................................................................................27FIGURE3-8-2DINTERSECTIONS.........................................................................................................................................27FIGURE3-9-(A)VOXELIZEDCARMODEL,(B)COMBINEDHELIXSLICERESULT................................................................................28FIGURE4-1-SYSTEMDESIGN............................................................................................................................................29FIGURE4-2-LIGHTCRAFTERGUI.......................................................................................................................................30FIGURE4-3-CONICALHELIX..............................................................................................................................................31FIGURE4-4-PSBLOCKDIAGRAM......................................................................................................................................32FIGURE4-5-CONVERSIONEXAMPLE...................................................................................................................................34FIGURE4-6-BITMAPSTRUCTURE.......................................................................................................................................35FIGURE4-7-PROGRAMMABLELOGICSYSTEM......................................................................................................................35FIGURE4-8-SLICEPROCESSOR..........................................................................................................................................37FIGURE4-9-READMODULEDESIGN..................................................................................................................................38FIGURE4-10-SLICEPROCESSORWRITEMODULE.................................................................................................................39FIGURE4-11-ZYNQ7PROCESSINGSYSTEMGUI...................................................................................................................41FIGURE4-12-PLSYSTEMBLOCKDIAGRAM.........................................................................................................................42FIGURE4-13-MECHANICALSYSTEMPHOTOGRAPH...............................................................................................................43FIGURE4-14-ENCODERWHEEL........................................................................................................................................44FIGURE4-15-ENCODERCIRCUITRY....................................................................................................................................45FIGURE4-16A-MOTORMOUNT.......................................................................................................................................46FIGURE4-16B-PROJECTORMOUNT...................................................................................................................................46FIGURE4-17–EMBEDDEDDESIGNMODIFICATIONS..............................................................................................................47FIGURE4-18-FINALSYSTEMIMPLEMENTATION....................................................................................................................47FIGURE5-1-MEMORYINITIALIZATIONTESTBENCHRESULTS...................................................................................................50FIGURE5-2-4000-BITDATAINITIALIZATIONTESTBENCHRESULTS..........................................................................................51FIGURE5-3A-TESTBENCHRESULTS.....................................................................................................................................51FIGURE5-3B-TESTBENCHRESULTS.....................................................................................................................................52FIGURE5-4-3DOBJECT(LEFT)ANDINTERSECTINGSURFACE(RIGHT).........................................................................................52FIGURE5-5-TESTBENCHRESULTS.......................................................................................................................................53FIGURE5-6-SLICETESTMODULEBLOCKDIAGRAM.................................................................................................................54FIGURE5-7-HARDWAREIMPLEMENTATIONRESULT..............................................................................................................54

Page 9: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

8

FIGURE5-8-BLANK20X20X0GRID....................................................................................................................................55FIGURE5-9-(A)MATLABSLICERESULTS(B)HARDWAREIMPLEMENTATIONRESULTS..................................................................55FIGURE5-10-PLSLICESIMULATIONRESULTS......................................................................................................................56FIGURE5-11-PLSLICEPROCESSORSIMULATION..................................................................................................................57FIGURE5-12-ENCODERMODULETESTRESULTS...................................................................................................................58FIGURE5-13A-ENCODERDETAILVIEW...............................................................................................................................59FIGURE5-13B-HOMEPOSITIONDETAILVIEW.....................................................................................................................59FIGURE5-14-VOXELIZATIONRESULTS................................................................................................................................59FIGURE5-15-SLICINGRESULTS.........................................................................................................................................60FIGURE5-16-VOLUMETRICDISPLAYRESULT........................................................................................................................61

Page 10: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

9

Chapter1:Introduction

Athree-dimensionaldisplayallowsausertoperceiveathree-dimensionalimage.Asopposedto

atwo-dimensionaldisplay,athree-dimensionaldisplayallowsfortheperceptionofdepth.Theevolution

ofthree-dimensionaldisplayscomprisesanarrayofdifferenttechnologiesandapplications.From

moviesandgamingconsolestomechanicaldesignandhumananatomy,themarketforsuchdisplays

continuestogrow.Three-dimensionaldisplaytechnologiescanbesplitupintothreemaincategories:

stereoscopic,autostereoscopic,andautomultiscopicdisplays.Outofthesethree,automultiscopic

displaysaretheonlysystemsthatcandisplaymultipleanglesofanimageatonce[1].

Stereoscopicdisplayscreateanillusionofdepthusingequipmentsuchasspecialglasses,

commonlyusedinthemovieindustry.Autostereoscopicdisplaysontheotherhanddisplaythree-

dimensionalimageswithouttheneedforspecialgearorlenses,suchaswhatisfoundontheNintendo

3DS.Automultiscopicdisplays,however,areabletodisplaymultipleanglesatonce,allowingaviewerto

movearoundandviewanimageatdifferentangles[1].

Volumetricdisplaysareanexampleofanautomultiscopicsystem,displayinganimagewithina

three-dimensionalvolume.Thisallowsmultipleviewerstomovearoundandseeathreedimensional

imagesimultaneouslyatdifferentangleswithouttheneedforspecialvisualeffectsorlenses[1].The

termvolumetricimpliesthattheimageisdisplayedinthreedimensions,asopposedtousingaflat

screenorusingparallaxorholographictechniques.Onetypeofvolumetricdisplayinparticularutilizes

projectingontoasweptvolumetocreateathreedimensionalimage[2].

Thepurposeofthisprojectwastoresearchanddesignafunctional,self-contained

automultiscopicvolumetricdisplaysystemcapableofdisplayinga3DCADfileinrealspace.Theproject

wasbasedonthevolumetricdisplaymethodofprojectingontoaspinning,swepthelixtocreateathree-

dimensionalimage.Thedesignconsistedofamechanicalhardwaresystem,projectionsystem,

programmablelogic,andprocessingsoftwarethatallworkedtogethertodisplayathree-dimensional

objectinrealspace.

Thisreportwilldetailthestepstakenduringthedesignandcreationofavolumetricdisplay

system,startingwithresearchconductedintovolumetricdisplayconceptsanddesignmethods.The

technologyrequiredforsuchsystemisexploredandimmediatelyfollowingarethestepstakentodesign

andimplementeachsectionofthesystem.Thestepstakentotesteachareaofthesystemandresults

obtainedfromthetestingareexplorednext.Lastly,theoverallresultsoftheresearchandfinalized

designandimplementation,includingconclusionsdrawnfromtheproject,arediscussed.

Page 11: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

10

Chapter2:Background

Thischapterpresentsinformationfrombackgroundresearchconductedonrelevanttopicsfor

creatingthevolumetricdisplaysystem.Thisincludedgaininganunderstandingofvolumetricdisplay

conceptsandthetechnologyrequiredtodevelopsuchasystem.

2.1VolumetricDisplayConcepts

AccordingtoBarryG.Blundell,volumetricdisplays“enablethedepictionofthree-dimensional

(3D)imageswithinatransparentvolume(imagespace).”)[3]Hisresearchstatedthatavolumetric

displayhasthreesubsystems:imagespaceformation,voxelgeneration,andvoxelactivation[3].

Imagespaceformationisthesystemormethodusedtoimplementthephysicalimagespace.

Voxelgenerationisthetechniqueusedtoproduceavisiblegraphicalunittodescribeapointinthree

dimensionalspace.Itisparalleltowhatapixelisfor2Dimages.Asopposedtovoxelgeneration,voxel

activationisthetechniqueusedtoproducethe3Dimageinspace.Blundellalsodefinestwoimportant

variablesinavolumetricdisplay:voxelactivationcapacity,andfillfactor[3].Thesevariablesgivea

metricthatdefinestheeffectivenessofavolumetricdisplayimplementation.

Voxelactivationcapacityisdefinedasthe‘totalnumberofvoxelsactivatedduringarefreshperiod’:

(1)

Pisthenumberofvoxelsthatcanbeactivatedsimultaneously,Tisthetimeittakestogenerateavoxel,

andfistheimagerefreshfrequency.

Fillfactoristhe‘percentageofavailablevoxelsitesthatcanbeactivatedduringanimagerefreshperiod:

(2)

Naistheactivationcapacity,Nlisthenumberofpossiblevoxellocations.

2.1.1SweptHelixApproach

Theprojectfocusedontheswepthelixapproachtocreatingavolumetricdisplaysystem,based

onresearchbyY.Jian,J.Feng,andS.Chun-lin[4]andMichelDavid[2].Theresearchdiscussesthekey

conceptsofaswepthelixvolumetricdisplayandapproachestothedesign.

David’sworkstatesthatavolumetricdisplaycanbecreatedbyprojectingaseriesof2D

intersectionsofamodelontoahelicoidsurfacerotatingatafastrateinordertocreatethevolumetric

Page 12: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

11

displayphenomenon.AnexampleofacubeisshownbelowinFigure2-1.Thecoloredlinesbelowthe

helicoidrepresentsthe2Dimagesbeingprojected.

Figure2-1-CubeintersectionswithHelicoid[2]

Inordertoachieveavolumetricimage,theprojectionsurface(helicoid)needstobespinningat

aminimumof15rotationspersecondtoprovideaclear,stableimage.Theresolutionoftheimageis

dependentupontheframerateoftheprojection.Thequalityoftheresolutioncanbedescribedusing

theangleofretrieveddata,orthenumberofframesprojectedperrotation.Forexample,a36-degree

resolutionwouldmean10images/rotationat15rotations/secor150images/sec.A36-degree

resolutionwouldrequireaprojectorwithaframerateof150Hz.

Aswepthelixismoreadvantageousforavolumetricdisplaythanaplaneasitenlargesthe

imagespaceandimprovesthedeadzone[4].Adeadzoneisanareawherethereisalackofvoxels.Itis

affectedbycharacteristicssuchastheimagespaceshapeandsize.Jianandco.foundthatahelixmore

adequatelyutilizesspaceandminimizesthedeadzoneoveraplanarshape.

2.1.2ModelProcessing

Theconversionfroma3Dmeshmodelintoavolumetricimageinvolvesaseriesofprocessing

steps,namelyvoxelizationandslicing.

3DMeshModels

3Dobjectscanbeconstructedandrepresentedincomputeraideddesigntoolsusingpolygon

meshes.Thesemeshesareacollectionofvertices,edges,andfacesthatareusedtodefineathree-

dimensionalobjectinacomputermodel[5].BelowinFigure2-2isanexampleofacuberepresentedin

theseparameters:

Page 13: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

12

Figure2-2-Cubeexpressedasvertices,edges,faces[6]

Theuseofpolygonmeshesisvastincomputergraphics,aseachobjectcanbeexpressedusing

themathematicalparametersmentionedforcomputermodellingapplications.BelowinFigure2-3isan

exampleofadolphinrepresentedusingtrianglemeshes:

Figure2-3-DolphinTriangleMesh[6]

Meshmodelsmayconsistoftriangles,quadrilaterals,orotherconvexpolygonstomodelan

object.Anumberofdifferentfileformatscurrentlyexistthatusepolygonmeshmodelingtostore3D

objectdata.Thisincludes.3ds,.obj,.stl,andmanyothers.Thesefileformatsconsistofdifferent

structures,butessentiallystorethesametypeofdata(vertices,faces,edges)[5].Themathematical

representationofthree-dimensionalobjectsincomputermodellingmakesitpossibleformanipulation

andconversionintothenecessarydatarepresentationforavolumetricdisplay.

Page 14: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

13

Voxelization

AccordingtoapaperfromNanjingUniversity[7],asignificantstepinconvertingameshmodel

intothe2Dslicesisvoxelization.Thisconceptisdiscussedandpresentedasfarbackas1996inapaper

byMarkJones[8]wherehedescribesvoxelizationas“thetermgiventotheprocessofconvertingdata

fromonesourcetypeintoathreedimensionalvolumeofdatavalues.”Thisinvolvesconvertingthe3D

meshmodelintographicaldatawithx,y,andzvariables.ThepaperfromNanjingUniversitypresents

thisconceptusingtheStanfordBunny[9]asanexample,asseeninFigure2-4:

Figure2-4-StanfordBunny3Dmodel[7]

Theprocessinvolvestakingthe3Dmodel(Figure2-4a),andmappingittothe3Dspaceitwillbe

projectedonto(Figure2-4b).Themappingisintheformofx,y,andzvariables(voxels).Intheexample

given,thevoxelsaresetasabinarypattern,with1indicatingtheobjectand0indicatingtheabsenceof

theobject.Figure2-4cshowsthesame3Dmodelrepresentedinvoxelsinsteadofthemesh.

Thevoxelizationofameshmodelisessentiallyanapproximation,convertingthegeometric

representationofthemodelintoasetofvoxelsofdesiredresolution.ThisisdiscussedinapaperbyS.

PatilandB.Ravi[10]whichdiscussesdifferentmethodstoimplementthevoxelizationprocess,and

presentsanalgorithmforvoxelization.Themethodusedinthedevelopmentoftheiralgorithmisthe

‘ray-stabbing’method.Thismethodcreatesa‘boundingbox’,orthree-dimensionalgridaroundthe

meshmodel(Figure2-4b),andcalculatestheintersectionsbetweenaraythattraversesalongthex-axis,

withthenormalvectorsofthetriangularmeshfacetsofthemodel.Theraytraversesthroughthex-axis

alongthey-axisateachz-axislayertogenerateathree-dimensionalbinaryapproximationofthemesh

model,thusachievingvoxelization.

Page 15: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

14

Thesizeandresolutionforaswept-helixvolumetricdisplayisdeterminedbythesizeofthe

projectionsurfaceandtheresolutionoftheprojector.Belowishowtheprojectionsurfacecanbeseen

tomatchthevoxelmappingabove.ThisisdisplayedinFigure2-5:

Figure2-5-HelicoidVoxelRepresentation[7]

Slicing

Convertingthevolumedatainto2Dslicesisthendonebycalculatingtheintersectionsofthe

volumedatawiththehelicoidateachpositionasitrotates.BelowinFigure2-6isanexampleofthe

intersectionslices:

Figure2-6-StanfordBunnyHelicoidIntersectionSlices[7]

Thethreedimensionalintersectionmustbecalculatedandthenconvertedintoatwo-

dimensionalslicetobeprojected.

Page 16: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

15

2.2MotorTechnology

Onevitalpieceinmanysystemswithradialmotionisthemotor.Therearemanykindsof

motors,eachwithitsadvantagesanddisadvantages.Althoughoftenrelated,differentkindsofmotors

aresuitedfordifferentapplications.Therearenumerouscategoriesofsmallelectricmotorsthatare

poweredbyadirectcurrentpowersource.TheseincludeDCmotors,servomotors,andsteppermotors.

Aptlynamed,aDCmotorrunswhendrivenbyadirectcurrentvoltagesource.Therateatwhich

themotorspinsiscorrelatedtothemotor’sinputvoltage.Thesemotorsareoftennotdirectlydriven

usingchangingvoltagelevels,however.Athighfrequencies,theaveragevoltageofapulsewidth

modulatedsignalactsindistinguishablyfromaconstantsourceatthesamevoltage.BecauseaPWM

(PulseWidthModulation)signalisoftentimeseasiertogeneratethanadifferentialconstantvoltage

source,DCmotorsareoftentimesdrivenusingPWM.

TherearetwoprimarytypesofDCmotors.ThesearethebrushedDCmotorandbrushlessDC

motor.BrushedDCmotorsutilizeaphysicalelectronicconnection—calledabrush—betweenthe

voltagesourceandcoilsonthemotor’sshafttocontrolwhichcoilsarepositivelychargedandwhich

coilsarenegativelycharged,effectingfurtherrotationoftheshaft.BrushedDCmotorsareverysimple

mechanicallyandareeasyandinexpensivetoproduce.Theircontinueduse,however,causesthebrush

towearoutovertimeandthemotorwilllosealargeamountofenergyasheat.

AbrushlessDCmotor,asthenamemightimply,doesnothavethisconnectionbetweenthe

statorandtheshaft.InsteadoftheshafthavingmountedcoilssuchasthoseonabrushedDCmotor,a

brushlessDCmotorhasapermanentmagnetmountedtotheshaftwhilethecoilsaremountedtothe

stator.Hall-effect(magneticfield)sensorsareusedtodetecttherotationofthepermanentmagnetand

appropriatelychargethecorrectcoilstopositive,negative,orground.BrushlessDCmotorsrequire

internalcircuitrytodrivethecoilvoltages,makingthemmoreexpensiveandcomplicatedtoproduce

thanabrushedDCmotor.Thelackofmechanicalcontact,however,allowsforalongerlifeandgreater

powerefficiencyinrotation,whichinturnallowsbrushlessDCmotorstorotatefasteratagivenvoltage

thanabrushedDCmotor.Thesemotorsareoftenusedinapplicationssuchasaviationduetotheir

powertoweightratio[11].

Thesecondkindofmotor,theservomotor,isoftenfoundinsystemsthatrequireahighdegree

ofrotationalprecisionsuchasroboticsandmanufacturingequipment.Aservomotoroperatesbytaking

inaPWMsignalandusingthedutycycletorotatetoaspecificangle.Thisisaccomplishedbyusinga

standardDCmotorthatisconnectedtoaradialencoder.TheoutputoftheencoderisfedintoaPID

(Proportional-Integral-Derivative)controllerinordertoensurerotationalaccuracyofthesystem.Servos

Page 17: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

16

areoftenlimitedtoaconfinedrotationalrange,howevertherearealsoservosthatdonotcontainthese

limitationsandcanrotatefreely[12].

Steppermotors,likeservos,areoftenfoundinhighprecisionapplicationssuchas

manufacturingandrobotics.Thesemotorsareoftenmeanttobeusedinhigh-torque,low-speed

applications.Asteppermotorhasadiscretenumberofstepsperrevolutionandwillalwaysrotatetothe

nextbeforecontinuing.Thisallowsforcontrolaspreciseasthenumberofstepsinthemotor.Thereare

numerouskindsofsteppermotorsthataredriveninvariousways,howeverthecoreconceptofdriving

eachisthesame:chargingthecorrectcoilsinsidethemotortothecorrectvoltagesinordertorotate

theshaft[13].

2.3ProjectionTechnology

Mostmoderndayconsumerlevelprojectionsystemsuseoneofthreeprimarytechnologies:

DLP(DigitalLightProcessing),LCD(LiquidCrystalDisplay),andlaserscanners.Therearealsonumerous

hybridsbetweenthesetechnologies,suchasLCoS(LiquidCrystalonSilicon)andlaser-drivenLCDand

DLPprojectors.Eachofthesetechnologieshasareasandapplicationswhereitexcelsaswellas

drawbacks.

TexasInstrumentscreatedDLPtechnologyinthelate1980’s.ThetechnologyusesaDMD

(DigitalMicromirrorDevice)toreflectlightthroughasystemofopticallensestoprojectanimage[14].

EachmirrorontheDMDrepresentsoneormorepixelsintheendprojection.Themirrorsmodulate

rapidlybetweenreflectinglightthroughtheopticalsystemandreflectinglightontoaheatsink.This

modulationproducesvariousintensitiesoflightateachmirror,allowingforcomplexgradientsorrapid

binarypatterns.DLPtechnologyisusedinmanyareasfromconsumerandcinemaprojectionsystemsto

manufacturingandrapidprototypingequipment.MultibitcolorprojectionusingDLPisachievedby

rapidlyswitchingbetweenanumberofcoloredlightsourceswhilstsimultaneouslyswitchingtheDMD

torepresentthecorrectcolorintensities[15].ManyDLPprojectorsusedinresidentialsettingsusea

halogenlamppairedwithrapidlyspinningcolorwheelwiththreeorfourcolors.Manymodern

commercialprojectorsutilizecoloredLEDsorlasertechnologytogenerateabrighterimagewithfewer

visibleartifactsintheprojection.

Laserprojectionisalsousedinmanyapplications,fromliveentertainmenttoindustrialscanning

andevenprinting.Oneormorelasersareprojectedagainstgalvanometerswithmirrorsattached,called

scanners.OnescannercontrolstheXaxisoftheprojectionandtheothertheYaxis.UnlikeDLPandLCD

technology,laserprojectionproducesavectorimage.Thismeansthattheimageproducedthroughlaser

Page 18: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

17

projectiondoesnothavediscretepixels,butratheriscomposedofmathematicalcurvesthatrepresent

theimage.Thisisbecausethelaserprojectsasthescannersmove,generatingacontinuousline[16].In

polychromaticapplications,numerouslasersarecombinedintoasinglebeambyinternalopticsofthe

projector.

ThefinalprojectiontechnologyisLCD.Foundanywherefrommonitorstoresearchequipment,

LCDworksonasimilarprincipletoDLP:differentintensitiesoflightareallowedtopassforeach

individualpixel.WhereDLPandLCDdiffer,however,ishowtheyachievethisgoal.WhereasDLPusesan

arrayofmirrorstoreflectlight,LCDprojectionusesapanelfullofliquidcrystalstomodulatelight

passingthrough[17].TherearetwocommonlayoutsforpolychromaticLCDprojectionsystems,which

aresingleLCDand3LCD.AsingleLCDsystemwilluseasingleLCDpanelwithsubpixelsforeachofred,

green,andblue,whilea3LCDsystemusesaseparateLCDpaneldesignatedtoeachaforementioned

color.

2.4HardwarePlatformOverview

Twohardwareplatformswerechosenforthisproject.ThesearetheAvnetZedBoardandTexas

InstrumentsDLPLightCrafterEVM.Bothoftheseplatformspossessuniquefunctionalityimportantto

thedesigngoalsoftheproject.

2.4.1ZedBoard

TheAvnetZedBoardisanevaluationkitthatutilizesaXilinxZynq-7000SoC.Theboardiscalled

assuchbecauseitstandsforthe'ZynqEvaluationandDevelopmentBoard.'Thespecificmemberofthe

Zynq-7000SoCfamilythattheZedboardUtilizesistheZynqXC7Z020.Forthepurposesofsimplicity,

Zynq-7000andZynqXC7Z020areusedinterchangeably.TheZynq-7000isasystemonachipthat

includesbothadual-coreARMCortexA9processingsystem(PS)aswellasFPGAfabricforthe

programmablelogic(PL).ThePLisrunoffofanon-board100MHzclockwhilethePSissuppliedbya

33.33MHzclock.TheZedBoardCanbeseeninFigure2-7.

Page 19: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

18

Figure2-7–ZedBoard[18]

TheXilinxFPGAfabricisequivalenttoaXilinxArtix-7FPGAandcontains85,000logiccells,

106,400flip-flops,and53,200LUTs.TheFPGAfabricalsocontainscontains140modulesof36KbBlock

RAM(BRAM).TheARMprocessorcontains256Kbofon-chipmemory,8DirectMemoryAccess(DMA)

channels,aswellasperipheralinterfacesforUART,CAN,I2C,SPI,GPIO,USB2.0OTG,andTri-mode

GigabitEthernet.InorderforthePLtocommunicatewiththePS,theZynq-7000seriesincludesa

numberofAXIbussesand16internalinterruptsbetweenthetwosectionsoftheSoC[19].ThefullZynq-

7000SoCsystemisdisplayedbelowinFigure2-8:

Page 20: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

19

Figure2-8-ZynqPlatformOverview[20]

AlongwiththeZynq-7000SoC,theZedBoardalsocontainstwoMicronDDR3chipsthathavea

totalmemoryof512MB.TheZedBoardalsohasaslotforanSDcard,allowingtheARMprocessorto

bootanexternaloperatingsystem.OntheboardtheUSB2.0OTG,Ethernet,UART,VGA,HDMI,and

CANarebrokenouttotheirrespectiveconnectors,withUARTbeingbrokenouttoaUSBtoUART

interface.Theboardalsofeaturesnumerousinputsandoutputs.Theinputsincludesevenpushbuttons

andeightswitcheswhiletheoutputsinclude8LEDsandanOLEDdisplay[21].Acomprehensive

ZedBoardblockdiagramcanbeseeninFigure2-9.

Page 21: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

20

Figure2-9–ZedBoardPlatformOverview[22]

2.4.2LightCrafterEVM

The TexasInstrumentsLightCrafterDLPEVMisanevaluationkitforDLPprojectiontechnology.

TheLightCrafterutilizesa0.3"DMDwithatotalof415,872mirrorsinadiamondpatternwithawidthof

608mirrorsandaheightof684mirrors.Whenrunningtheboardinone-bitmonochromemode,a

4000Hzframerateisachievable.TheopticsoftheLightCrafterproduceathrowratioof1.66andcan

produceaminimumdiagonalimageat10"andamaximumat60"[23].TheLightCraftercanbeseenin

Figure2-10.

Page 22: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

21

Figure2-10-LightCrafter[24]

TheDMDandlightengineoftheLightCrafterarecontrolledusingacombinationofadigital

videoprocessorandFPGA.TheFPGAreceivesinputdirectlyfromDVI(miniHDMI)andanexternal

trigger.Otherinputssuchascamera,USB,UART,andMicroSDaretakeninbyadigitalvideoprocessing

chiprunninganembeddedLinuxoperatingsystem.ThisvideoprocessingchiphasGPIOanddigitalvideo

connectionswiththeFPGA,whichisinturnresponsibleforprocessingandstreamingvideoandLED

colordata.ThesetwostreamsofdataaresenttotheDMDcontrollerandLEDdriverrespectively[23].

ThefullsystemblockdiagramcanbeseeninFigure2-11.

Page 23: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

22

Figure2-11–LightCrafterDiagram [23]

Page 24: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

23

Chapter3:AlgorithmDevelopment&SystemSimulation

ThedataprocessingofthevolumetricdisplaysystemwasinitiallyimplementedinMATLABfor

developmentandsimulation.ThevoxelizationandslicingalgorithmsweredevelopedasMATLABscripts

beforetheirimplementationsinsoftwareandcustomlogic.Inaddition,asimulationwascreatedofthe

volumetricdisplaysystemasaproof-of-concept.

3.1DataProcessingFlow

Theconversionofthemeshmodelintoatwo-dimensionalsliceinvolvestwomainprocesses:

voxelizationandslicing.Thedesignedsystemutilizestheseprocessesinthreesteps:voxelizetheobject

andhelix,calculatethethree-dimensionalintersection,andgeneratethetwo-dimensionalslice.Thisis

outlinedinFigure3-1below:

Figure3-1-DataProcessing

Thisprocessisrepeatedforeachhelixrotationpositioninordertogeneratetheslicesnecessaryforthe

fullvolumetricdisplay.

3.2VoxelizationAlgorithm

ThevoxelizationalgorithmwasdevelopedusingaMATLABpackagecreatedbyAdam

Aitkenhead[25].Thepackageincludesavoxelizationscriptthatconvertsa.STLfileintoabinaryvoxel

representationasathree-dimensionalarray.ThescriptwasbasedontheresearchofPatilandRavi

mentionedpreviously[10].Thepackageincludedanexamplevoxelizationscriptwhichwasmodifiedto

suittheneedsoftheprojectbyaddingfeaturessuchasthegenerationofthree-dimensionalfiguresof

thevoxelizedobjectaswellasthemanipulationoftheoutputdatatosuittheneedsoftheslicing

algorithm.

Thevoxelizationscripttakesina.STLfileandaspecifiedgridsizeforthevoxelizedobject.The

outputofthescriptisathree-dimensionalarrayrepresentingthex,y,andzdimensionsofthevoxel

Page 25: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

24

grid.A‘1’representswheretheobjectispresent,and‘0’representsitsabsenceorthebackground.The

originalscriptalsogeneratedfiguresofthemeshmodel(Figure3-2),aswellasthreetwo-dimensional

figuresofthevoxelizedresult(Figure3-3).Thescriptwasmodifiedtogenerateasinglethree-

dimensionalfigureofthevoxelizedresult.

CADModels

Totestthevoxelizationalgorithm,severalCADmodelswereutilized.Acarmodelfromthe

NationalUniversityofSingapore’sSTLLibrary[26]wasselectedasanexampleoftheobjecttobe

projected,andahelixmodelwascreatedtobevoxelizedaswell.

VoxelizationScriptTesting

Thevoxelgridsizewasinitiallyselectedas100x100x100.Theresultsusingtheoriginalscript

(withoutmodification)areshowninFigures3-2and3-3:

Figure3-2-CarMeshModel

Figure3-3-VoxelizedCarModel(unmodifiedscript)

Page 26: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

25

Themodifiedscriptwasthentestedtogenerateathree-dimensionalfigureinsteadofthethree

separateangles,andtheresultcanbeseeninFigure3-4:

Figure3-4-VoxelizedCarModel(modifiedscript)

3.3SlicingAlgorithm

TheslicingalgorithmwascreatedasanextensiontothevoxelizationMATLABscript.The

algorithmtraversesthrougheachpositionofthethree-dimensionalarraysforthevoxelizedobjectand

helixandconstructsanewarrayasaresult.Ateacharrayindex,thebitfortheobjectandhelixare

compared.Iftheyarebothsetto1atthatposition,anintersectionhasbeenfound,andthebitforthe

newarrayissetto1,otherwise,itissetto0.Togeneratethetwo-dimensionalintersection,thesame

processisfollowedbutatwo-dimensionalarrayisconstructed,butthezdimensionisignored.Ifan

intersectionisfoundinthex-yplaneatanylevel,thex-ybitinatwo-dimensionalarraywillbesetto1.

Theoutputofthescriptgeneratesafigurewiththethree-dimensionalintersection,aswellasthetwo-

dimensionalslice.

SliceAlgorithmTesting

Thecarmodelwasslicedwiththehelixusingtheresultingdatafromvoxelization.Theresultsof

theprocesscanbeseeninFigure5-3.

Page 27: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

26

(a) (b) (c)Figure3-5-(a)20x20x20carvoxelmodel(b)20x20x20helixvoxelmodel(c)20x20carslice

Thetestshowedsuccessfulresults,verifiedbyrotatingthe3Dintersectiontoviewthex-yplane

andcomparingitwiththe2Dresult.Furthermore,thetestutilizedavoxelgridsizeof20x20x20gridto

verifyadequateresolutionwithlessvoxels.ThiswasasignificantconsiderationforthePLdesignin

termsofmemoryresourcerequirementdiscussedfurtherinthisreport.

3.4SystemSimulation

Thevoxelizationandslicingscriptswereexpandedtobeabletosimulatethefullvolumetric

displaysystem.Thisincludedbeingabletogenerateslicesforeachhelixrotation.MeshLabwasusedto

re-orienttheoriginal.STLmodelofthehelixtothedesiredrotationangles.Therotatedmodelswere

thensavedtobevoxelizedinMATLAB.Thegoalwastogenerate20slices,thusanangleof180/20=9

degreeswasusedforeachrotation,asthesameintersectionsarefoundafter180degrees.InFigure3-6

areafewexamplesoftherotatedhelixmodels:

Figure3-6-Rotatedhelixmodels

Page 28: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

27

Thescriptwasthenmadetoreadineach.STLfileandperformthevoxelizationandslice

algorithm(both3dand2d)foreachrotation(withthecarmodelusedpreviously),savingtheresultsto

theworkingdirectory.Thescriptessentiallysimulatesthevolumetricdisplayconceptfully,generatinga

finalimagewitheachrotationslicecombined.Theresultsforslices1,10,and19areshownbelowin

voxelizedformintersectingthehelixvoxelmodelsinFigure3-7,2DformafterbeingslicedinFigure3-8,

andinrecombined3DforminFigure3-9:

3Dintersections

Figure3-7-3Dintersections

2DIntersections

Figure3-8-2Dintersections

Page 29: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

28

Combined3Dresult

(a) (b)

Figure3-9-(a)voxelizedcarmodel,(b)combinedhelixsliceresult

Asseenabove,thesimulationsuccessfullyreconstructedthecarmodelusingthehelixslices.Thecode

fortheMATLABscriptscanbefoundinAppendixA.

Page 30: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

29

Chapter4:SystemDesign&Implementation

Thefollowingchapterdescribesthedesignandimplementationofeachaspectofthesystem.

Theoveralldesignispresentedandeachfunctionalmoduleisexpandedupon.

4.1EmbeddedSystemDesign

Thegoaloftheprojectwastoresearchanddevelopanend-to-endvolumetricdisplaysystem.

Theteamfocusedontheswept-helixapproach,anddesignedasystemasisshowninFigure4-1below:

Figure4-1-SystemDesign

Thesystemtakesina3DCADmodelandconvertsitintotwo-dimensionalimagestobe

projectedontoaspinninghelix.Thisisachievedthroughaseriesofprocessingsteps,utilizingboththe

ARMprocessorandFPGAfabricoftheZynqSoC.Thedesigncanbesplitupintofourmaincategories:

projection,processingsystem,programmablelogic,andmechanicalhardware.Eachofthefollowing

sectionswilldescribethedesignandimplementationofeachaspect,aswellasdiscussthe

modifications,tradeoffsandlimitationsinimplementingthedesign.

4.2Projection

Therequirementfortheprojectoristohaveahighenoughframeratetogenerateastable

volumetricimage.Thedesignedsystemdisplayed40framesoverasinglerotation,andtherateofthe

motormustbeatleast15rotations/secondasfoundinthebackgroundresearch.Thisresultsin15*40

frames/seconds,or600Hz.TheLightCrafterEVMwasselectedasitisabletoachievesuchrates.

Page 31: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

30

Inordertosuccessfullydisplayavolumetricimage,theprojectorneededtobesetuptothe

correctspecifications.Inorder,theseincludeddisplaymode,patterncount,inputtriggermode,LED

color,exposure,andinputtriggerdelay.Thedisplaymodeneededforprojectingapatternofbinary

bitmapsathighspeedsisreferredtobyTexasInstrumentsas“StoredPatternSequence”mode.Because

thereweretwentyimagesinacycle,thepatterncountwasthensetto20.TheLightCrafterreceived

inputpulsesthathadanactivehigh,sotheinputtriggermodewassetto“External(Positive)”tosignify

thattheinputtriggerwasbothactiveandactedonarisingpulseedge.Theexposureandtriggerdelay

werebothleftat0µSsotheimagewouldremainbrightandtheframewouldchangedirectlyatthe

pulseedge.AfterthesesettingswerechangedtheseriesofimageswasloadedontotheLightCrafter.A

viewoftherequiredsettingscanbeseeninthescreenshotoftheLightCrafterGUIapplicationinFigure

4-2.

Figure4-2-LightCrafterGUI

Becausetheprojectordoesnotproduceaperfectisometricprojectionbeam,aneffortwasmadeto

adjustfortheconeangleoftheLightCrafter.Thiswasaccomplishedbycreatinganalternativehelical

modelforuseinslicing.Thisnewhelicoidwasdeformedalongtheupwards-facingaxis,decreasingradial

sizeincorrelationwiththe1.66:1throwratiodefinedbytheLightCrafter’soptics.Orthogonalityofthe

Page 32: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

31

beamwasnottakenintoaccountincorrelationwiththeisometricqualityofthebeam.Thisdeformed

helicoidcanbeseeninFigure4-3.

Figure4-3-ConicalHelix

4.3ProcessingSystem

Theembeddedsystemdesignrequiredanumberofpiecesofsoftwaretomeetthegoalsofthe

processingsystemdesign.ThesewereimplementedintheClanguageandbuiltonanembeddedLinux

operatingsysteminordertoutilizetheARMprocessoroftheZedBoard.Thesystemdesigncanbeseen

inFigure4-4.

Page 33: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

32

Figure4-4-PSBlockDiagram

4.3.1PetaLinux

Anoperatingsystemwaschosenoverabare-metalapproachtoprogrammingtheARM

processorfortwomainreasons.Thesereasonsaretheneedforfilesystemaccessandtherequirement

forlibrariesthatareincludedwithvariousoperatingsystems.Thefilesystemwasneededtointeract

withtheoriginalSTLfileaswellasthegeneratedimages,andthelibrarieswereneededforinterfacing

withtheLightCrafter’sprovidedAPI.PetaLinux,aLinuxdistributionprovidedbyXilinxforuseontheir

FPGAproducts,waschosentobethebaselayerforallprocessingsystemfunctionality.Becausethe

operatingsystemisdesignedforuseonaZynqSoC,thereisinherentfunctionalitythatallowsforease

ofcommunicationbetweenthePLandPSoftheoveralldigitalsystem.ThePetaLinuxoperatingsystem

providesabaselayerandframeworkonwhichallotherprocessingfunctionalitywasbuilt.Thisincludes

directGPIOandBRAMaccessaswellasstandardLinuxlibraries,USBfunctionality,andfilesystem

access.

4.3.2VoxelizationandPS-PLInterface

Theembeddedsystemdesignincludedthevoxelizationalgorithmasanembeddedsoftware

applicationthatgeneratedthevoxeldataandwritesthisdataintomemoryinthePLsystem.However,

duetothescopeoftheproject,thevoxelizationalgorithmwaskeptasaMATLABscript.Thescriptmay

beconvertedintoaCapplicationusingMATLABCoder,butthetooldidnotsupportallthefunctions

necessaryinthevoxelizationpackage.Theconversionprocesswouldinvolvefurtherresearchofthe

voxelizationalgorithmanditsprogramming,whichwasoutsidethescopeoftheproject.

Page 34: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

33

ThePS-PLinterfacewasinvestigated,howeverduetothetimingconstraintsoftheproject,the

implementationwasleftoutofthefinalsystem.BRAMaccessinPetaLinuxiscanbeachievedthrough

thecombinationoftwomethods.ThefirstofthesemethodsistheuseofthemmapLinuxsystemcallto

accessamemorymanageddevice,inthiscaseBRAM.Thesecondisassigningeachhardwaredevice,

suchastheGPIOandBRAMinterfaces,asadeviceintheUserspaceIO(UIO)inPetaLinux.Thecreation

ofaUIOdrivercreatesafileinthe/dev/folderoftheLinuxfilesystem.

4.3.3LightCrafterAPI

TheLightCrafterAPIisasetofsoftwarelibrariesprovidedbyTexasInstruments.Thesewere

neededtocreatesoftwarethatinteractswiththeLightCrafterEVM.BecausetheZedBoardisaheadless

embeddedsystem,softwareneededtobewrittenforPetaLinuxthatreplacedtheGUILightCrafter

ControlprogramthathadpreviouslybeenusedonaworkstationPC.TheLightCraftercontrolprogram

waswrittenusingcallstotheLightCrafterAPIprovidedbyTexasInstruments.Thecontrolprogram

worksbyfirstcheckingtheconnectiontomakesuretheLightCrafterisconnectedandisvisibleasan

RNDISethernetgadget.Theprogramthengoesthroughandchangestheprojectionmodeto‘Stored

ImageSequence’andsetsthecolor,sequencelength,andtriggertypebeforeuploadingalltheimages

totheprojector.Thetriggertypeissetto‘External(positive)’becausetheoutputfromtheZedBoardis

anactivehighsignal,sotheLightCraftermustbetriggeredontherisingclockedgesratherthanthe

fallingclockedges.TheLightCrafterAPIcodecanbeseeninitsentiretyinAppendixB.

4.3.4BitmapGeneration

Thebitmapconversionprogramtakesinabitarrayrepresentationoftheslicedandflattened

dataandturnsitintooneoftheimagesthatisuploadedtotheLightCrafter.Thebitmapgeneration

happensinfourmainsteps:initialfilecreation,dataprocessing,imagepadding,andwritingtothefile.

TheLightCraftertakesinaone-bitBMPfile,soaheaderforthisformatisfirstgeneratedbythe

software.ABMPfilehastwoheaders,agenericfileheaderandadataheaderspecifictothebitmap

format[27].Bothofthesemustbeformattedproperlyinordertogenerateauseableimage.

FirstthefileheaderisgeneratedanditisgivenasignatureuniquetotheBMPformat.Nextthe

totalfilesizeandheaderlengtharecalculatedandplacedintotheirrespectivespotsintheheader.The

secondpartofformattingthefilecorrectlyistheBMPdataheader.Thisincludesinformationsuchas

thesize,pixeldensity,andbitdepthoftheimage.Alloftheneededvaluesarecalculatedandplaced

intotheirrespectivespotsinthedataheader.

Page 35: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

34

Nexttheinputdatamustbescaledandformattedtofittheprojector.Thisisaccomplishedby

copyingthedataoutofmemoryandthenscalingthedatabyafactorof25.Thedataisscaledby

iteratingthrougheachpixelinthescaledarrayandmappingittoapixelinthesourcearray.Thiscanbe

seendemonstratedinFigure4-5,whichshowsfirstanarraybeingscaledandthentheimageresultofa

scaledarray.

InputData OutputImage

[0x00,0xff,0x00,

0x00,0xff,0x00,

0x00,0xff,0x00,

0x00,0xff,0x00,

0x00,0xff,0x00,

0x00,0xff,0x00,

0x00,0xff,0x00,

0x00,0xff,0x00,

0xff,0x00,0xff,

0xff,0x00,0xff,

0xff,0x00,0xff,

0xff,0x00,0xff,

0xff,0x00,0xff,

0xff,0x00,0xff,

0xff,0x00,0xff,

0xff,0x00,0xff,

0x00,0xff,0x00,

0x00,0xff,0x00,

0x00,0xff,0x00,

0x00,0xff,0x00,

0x00,0xff,0x00,

0x00,0xff,0x00,

0x00,0xff,0x00,

0x00,0xff,0x00]

Figure4-5-ConversionExample

Afterthepixelsarescaled,theyarepaddedinordertobringeachrowofpixelstoamultipleof

fourbytestopreventimageskew.Theaddedpaddingbringstheimageto608x684pixels,which

matchestheresolutionrequiredbytheLightCrafter.ThedataisthenwrittentotheBMPfileinorder.

Page 36: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

35

Firstthefileheaderiswrittenfollowedbythedataheader.Beforetheactualimagedataiswritten,

however,acolortableisincludedtostatewhichtwocolorsarerepresentedbythemonochrome

bitmap.ThefullbitmapfilestackcanbeseeninFigure4-6below.FormoreinformationabouttheBMP

generationcode,seeAppendixC.

1 FileHeader(14bytes)

2 DataHeader(32bytes)

3 ColorTable(2*4bytes)

4 ImageData(51,984bytes)

Figure4-6-BitmapStructure

4.4ProgrammingLogic

Theprogrammablelogicsystemconsistsofthesliceprocessor,encoder,andprocessingsystem

interface.AblockDiagramofthefulldesigncanbeseeninFigure4-7below:

Figure4-7-ProgrammableLogicSystem

ThesystemwasdesignedandimplementedinVerilog,usingacombinationofcustomIPand

XilinxIPblocks.Theonlyexternalinputandoutputtothesystemisfortheencodermodule,which

handlestheprojectionsynchronization.

Page 37: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

36

4.4.1Memory

AsignificantaspectinthePLdesignwasthememoryrequirementofthesystem.Thedatasent

fromtheprocessingsystemisa20x20x20arrayrepresentingthevoxelizedobject,thus20x20x20,or

8000bitsarerequiredforstorageofone3Dmodel.Thecompletesystemrequirestwenty-one3D

models:onefortheobject,andtwentyforeachhelixrotation.Inaddition,memoryisrequiredtostore

thetwentytwo-dimensionalslicesgenerated,needing20x20or400bitsforeach2Dslice.Thisresultsin

atotalof21*8000+20*400bits,or176000bits.

TheZynqSoCfeatures140x36KbblocksofRAM,witheachblockhavingamaximumbus-width

of75bits.TheseblocksofmemorycanbegeneratedusingXilinxIP,namelytheBlockMemory

Generator.ThegeneratorallowstheconfigurationofcustomBRAM,allowingthespecificationforthe

widthanddepthforthedatatobestoredwithintheblock.Thesystemwasdesignedsothateachthree-

dimensionalmodelwouldbestoredinitsownblockRAMforeasyaccess,andalltwentyofthe2Dslices

wouldbestoredinasingleblocktobeaccessedbythePS,resultinginatotalutilizationof22blocksof

RAM.TheBlockMemoryGeneratoralsoallowsforthememorytobepre-initializedwithdata.This

allowedthetwentyhelixmodelstobepreloadedintothememoryblocksusingmemoryinitialization

files(.coe)containingthevoxeldataforeachhelixrotation.

4.4.2SliceProcessor

Thesliceprocessorfindstheintersectionbetweenthevoxelizedobjectandhelix,andconvertsit

intotwo-dimensionalslicedata.Thisisdoneforeachhelixrotation.Theoveralldesigncanbeseenin

Figure4-8.

Page 38: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

37

Figure4-8-SliceProcessor

Theuseofcustomlogicforthesemodulesallowsforfast,parallel,computationsofthe

intersections.ThesliceprocessorisactivatedbyanenablesignalsentthroughGPIOfromtheprocessing

system,whichactivatesthereadmoduleofthesliceprocessor.Thereadmoduleextractsthevoxeldata

oftheobjectfromBRAM,aswellasthevoxeldataofthehelix.Itcontainstwentymemoryblocks,each

containingthedataofonehelixrotationasmentionedabove.Eachblockofmemoryhasadatabus

widthof50bitsandadepthof160bits,andthemodulereadsfromoneBRAMatatime.Themodule

selectsanewmemoryblocktoreadfromonceeachaddresshasbeenvisitedfromthepreviousblock.

ThereadmoduledesigncanbeseeninFigure4-9.

Page 39: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

38

Figure4-9-ReadModuleDesign

Theoutputofthereadmodulepopulatesthe8000registersforafullmodel.Onceallthedataof

ahelixisextracted,theslicemoduleisenabledtogeneratethetwo-dimensionalslicedataforthat

rotation.Theslicemoduleperformstwooperations-calculatingthethree-dimensionalintersectionand

thenconvertingitintotwo-dimensionalslicedata.Insteadoftraversingthroughthethree-dimensional

arrayasdoneinthesimulation,thethree-dimensionalintersectioniscalculatedbyabitwiseANDofthe

objectandhelixdata,andthetwo-dimensionalsliceiscalculatedbymappingeachxandypositionon

everyzleveltothesamebitonthe20x20array.Thisallowsforafasterparallelcomputationofthe

intersection.

Oncethesliceisgenerated,thewritemoduletakestheoutputfromtheslicemoduleasitsmain

input,storeseachsliceinaslicebuffer,andwritestheslicesintoBRAMasseeninFigure4-10.

Page 40: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

39

Figure4-10-SliceProcessorWriteModule

Theread_countcountsfrom0to19inordertoloadthe20slicesintobufferregisters.The

buffersarethenfedintoamultiplexer,whichselectsonesliceatatimetobewrittenintoBRAM.The

BRAMhasa32-bitdatawidth,thuseachsliceisfedintoanothermultiplexertofeedthedatain

sequentially.Theread_countbeginsattheinputenablesignal.Whenallsliceshavebeenreadin,

write_nextandwrite_countareenabledtoallowfortheBRAMwriteoperationstooccur.Thismoduleis

enabledsimultaneouslywiththeslicemodule.OnceeachslicehasbeenwrittenintoBRAM,the

processingsystemcancommencereadingthedatatogeneratethebitmapimagesforprojection.The

codeforthesliceprocessorcanbefoundinAppendixE.

4.4.3EncoderModule

Theencodermoduleisanintegralpartoftheprojectioncontrolsystemthatenables

synchronizationbetweenthespinninghelixandprojectedframes.Themoduletakesinthehomeand

helixpositionsignalsfromencodercircuitryasitsinputsandoutputsapulsesignalthatissenttothe

LightCrafter.

Themodulehastwostates-standbyandactive.Themoduleisinitializedinitsstandbystate,

anditsfunctionalityistodetectthehomeposition.Thehomepositionisthestartingpositionofthe

helixwherethefirstframeistobeprojected.Whileinstandbystate,thereisnooutputtothe

Page 41: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

40

LightCrafter.Thesignalscomingfromtheencodercircuitryareactivelow,thusthehomesignalis

detectedwhenthereisalogic0inthe‘home’input.Oncedetected,themoduleisputintoitsactive

state,wherethehelixpositionsignalinputisdirectedasthepulsesignaloutput.Thus,foreverynew

positiondetected,thenextframeistriggeredforprojection.Theencodermodulecodecanbeseenin

AppendixF.

4.4.4PSInterfaceandPLSystemIntegration

TheprogrammablelogicsysteminteractswiththeprocessingsystemviatheZynq7Processing

SystemIPblock,whichwrapstheARMprocessortoenablecommunicationbetweenthecustomlogic

andsoftware.Communicationbetweenthetwosystemsisnecessarytobeabletotransferthe

voxelizationdatafromPStoPL,andtheslicedatafromPLtoPS.Inaddition,thecustomlogicmodules

areactivatedthroughGPIOsignalssentfromthePS.Thecommunicationbetweenthetwosystemswas

configuredusinganAdvancedeXtensibleInterface(AXI)bus,whichprovidestheinterfaceforboth

memoryandGPIO.

ProcessingSystemWrapper

TheZynq7IPblockintegratestheprocessingsystemwiththeprogrammablelogicsystem.This

allowsthePStohaveaccesstobothon-chipandexternalmemory,PLclocks,andadditionalI/O

peripherals.ThePSinterfaceconfigurationcanbecustomizedusingtheuserinterfaceoftheIPblockas

seeninFigure4-11below:

Page 42: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

41

Figure4-11-Zynq7ProcessingSystemGUI

Settingssuchastheperipherals,systemboot-mode,clocks,andthePS-PLinterfacecanbe

configuredbytheuser.ThePSwasconfiguredtohaveUSB,UART,andSDcardperipherals.TheUSB

peripheralallowstheLightCraftertobeconnected,UARTallowsaconnectionbetweentheheadlessPS

systemandahostPC,andtheSDcardperipheralallowsthesystemtobebootedfromanoperating

systemresidingonanSDcard.Inaddition,thePSwasconfiguredwithanAXIinterfacefor

communicationwithBRAMandGPIO.

AdvancedeXtensibleInterface

AXIisaprotocoladoptedbyXilinxasaninterconnectionbetweenIPcores[28].Specifically,AXI

enablesaninterconnectionformemory-mappedIO.AnAXIinterconnectionwasgeneratedinthePL

systemtocreatethenecessaryconnectionswiththePS.Theinterconnectwasautomaticallygenerated

Page 43: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

42

aspartofVivado’s‘runblockautomation’toolinblockdesignmode,creatingthenecessaryabstractions

forasimpleconnection.

TheAXIinterconnectwasusedforboththeGPIOandBRAMconnectionsinthePL.AnAXIBRAM

controllerwasgeneratedusingXilinxIPthatallowsthePSsystemtoaccesstheon-chipBRAMinPL.Two

blocksofRAMweregeneratedinthetopleveldesignofthePLfortheseparatereadandwrite

operationsofthedatapath.ThefirstBRAMisusedtostorethevoxeldatawrittenfromPStobereadin

PL,andthesecondBRAMistostoretheslicedatawrittenbyPLtobereadbackintoPS.

SystemIntegration

ThePSwrapper,AXIinterconnect,andblockmemorycoreswereintegratedintoasingleblock

designasseeninFigure4-12below:

Figure4-12-PLSystemBlockDiagram

InordertoconnecttheblockdesignwiththecustomsliceprocessorandencoderIP,theGPIO

andBRAMportswereconfiguredasexternalports.Atop-levelmodulewasthencreatedusingVerilog

thatinstantiatedandconnectedthemoduleabovewiththesliceprocessorandencodermodulesto

completethecomprehensiveprogrammablelogicsystem.ThefullPLsystemcodecanbeseenin

AppendixG.

Page 44: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

43

4.5MechanicalSystem

Inordertoproduceavolumetricimage,arotationalhardwaresystemneededtobecreatedto

spinandtrackthehelicalprojectionscreen.Aframealsoneededtobeconstructedinordertomount

rotationalsystemandprojectionsystem.Themechanicalsystemconsistsofthreemaincomponents:

theencoder,therotationalhardware,andtheframe.Thepurposeofthedesignwastoprioritize

stabilityandstructurearoundtherotationalhardwarewhilstmaintainingtheproperdistancesbetween

thehelixandtheprojector.AnimageofthefullsystemcanbeseeninFigure4-13below.

Figure4-13-MechanicalSystemPhotograph

Onerequirementofthesystemwastosynchronizethemotorwiththeprojection,inorderto

generateacorrectimage.Theencoderwasdesignedtoallowthesystemtotrackboththerateof

rotationaswellasabsoluterotationalposition.Thiswasaccomplishedthroughtheinclusionofbotha

forty-positionencoderaswellastwohomepositions.Thehomepositionmarksthestartingpointofthe

rotationalsequence.Twohomepositionswereincludedduetotheradialsymmetryofthehelixat180°.

Thesetwohomepositionsactidentically,buttheinclusionofbothhalvestheworst-case-scenariowait

Page 45: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

44

timeforthesystemtobecomesynchronized.Inordertotrackthis,40encoderpositionswereincluded

equidistantfromeachotheraroundtheperimeteroftheencoderbelowthehomeposition.Each

positionindicatesanewframetobeprojected.Acomputer-generatedmodelofthisencodercanbe

seeninFigure4-14.

Figure4-14-EncoderWheel

TheencodercircuitryconsistsoftwophototransistorsandtwoinfraredLEDs.Pullinglowwhen

theysenselightoveracertainthreshold,thephototransistorsaremountedacrossfromtheLEDswith

thebeamofbothLEDscenteredonandperpendiculartoeachtrackontheencoderwheel.Thisallows

fortheencoderandhomepositionsonthewheeltobeseparatelytracked.TheLEDsand

phototransistorsshareacommonpowersource,howevertheoutputsareseparatedandfedinto

separateinputsoftheZedBoard.AcircuitdiagramforthetwoLED/phototransistorpairscanbeseenin

Figure4-15.InformationaboutthewirecolorcodingschemecanbefoundinAppendixH.

Page 46: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

45

Figure4-15-EncoderCircuitry

Therotationalhardwarewasselectedtoallowforthehelicalloadtospinataratefastenough

toprojectasteadyimageataconstantspeed.Themotorselectedwasabrushedmotorwithapower

drawunderfullloadof6W.Thismotorwaschosenduetocost,speed,andeaseofintegrationintothe

design.Themotor,aHyongyangHRS-755S,islowcostandadvertisedforapplicationsinhigh-speed

applicationssuchasincordlessleafblowersandhedgetrimmers.Themotoralsohaseasilyaccessible

mountingpointsthatwereutilizedincouplingtherotationalsystemtotherestofthehardware.In

ordertopreventthehelixfromfreelyrotatingaroundacircularshaftwhilstspinning,aD-shaft–named

foritsshape–waschosentoallowfortheshaftcoupler,shaftcollars,encoderwheel,andhelixtoeasily

limitnon-motorradialmotionwhilesimultaneouslymaintainingeasyverticalmotiontoassembleand

disassemblethecomponents.

Inordertoholdeachpieceofthemechanicalsystemtogether,aframewasconstructedfrom

steelanglechannelandacrylic.Twoacrylicpanelsweredesignedfortheframeinordertomountthe

motorandLightCraftertothesystem.Thesetwomountingplateswerelasercutfromacrylicsheetsand

attachedtothesteelframeusingL-brackets.Themotorplate,asseeninFigure4-16a,wasdesignedto

accommodatetheshaftofthemotoralongwithtwoscrewstoallowforthemotorfacetobemounted

flushwiththepanel.TheprojectormountseeninFigure4-16bwasdesignedtoutilizethreeslotsinthe

acrylic.Thewidecenterslotistoallowtheprojectedimagetopassthroughthepaneluninterrupted

whilethetwoouterslotsareformountingtheprojectortothepanel,allowingforslidingtoadjustand

calibratetheimage.

Page 47: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

46

Figure4-16a-MotorMount Figure4-16b-ProjectorMount

Afterinvestigationintoanumberofpossibletechniquestocreatethehelix,extrusion-based3D

printingwasdecidedtobethemostfeasible.Duetorestrictionsofthe3Dprinterusedfor

manufacturing,thehelixwassplitintothreepiecesinordertoallowittofitonthebedoftheprinter.

Nylonwasusedastheprintmaterialduetoitslowcost,highstrength,andlightweightnature.The

housingfortheencodercircuitrywasalso3Dprinted.Thisenclosurewasdesignedbothtoallowfor

easymountingtotheframeandtoprovideampleheadroomtotherotatingencoderwheel.

Page 48: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

47

4.6FinalSystemImplementation

Duetothetimingconstraintsandscopeoftheproject,thefinalsystemimplementation

processedtheCADfileonaPC.Thisincludedvoxelization,slicing,generatingbitmapimages,and

configuringtheLightCrafter.Figure4-17showstheoriginalembeddedsystemdesign.Themodules

highlightedingreenwereimplementedonaPCforthefinalimplementation,andthemoduleinblue

wasimplementedontheZedBoard:

Figure4-17–EmbeddedDesignModifications

ThePCwasconnectedtotheLightCrafterviaUSB,andtheZedBoardwasconnectedtoboththe

encodercircuitryandtheLightCrafter(seeAppendixH).ThisisshowninFigure4-18below:

Figure4-18-FinalSystemImplementation

Page 49: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

48

TheCADfilewasprocessedinMATLABforvoxelizationandslicingusingthesimulationscript.

Thescriptgeneratedthetwentyslicesandwereautomaticallysaved.Theseimageswerethenconverted

tothenecessaryresolution(608x684)andfiletype(monochromebitmap).TheLightCrafterGUIwas

thenusedtoconfiguretheLightCrafterforstoredpatternsequence,andthe20bitmapswereuploaded.

ThemotoristurnedononcetheimageshavebeenuploadedtotheLightCrafter,andtheprojection

commenceswhenthehomepositionisdetectedbytheencoder.Theintegrationofthesepartscreate

thecompletevolumetricdisplaysystem.

Page 50: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

49

Chapter5:SystemTesting&Results

Inordertoensurethateverypieceoftheprojectwasfunctional,astrictandcomprehensiveset

oftestingguidelineswasdevelopedforeachpart.Thissectionoutlinesthestepstakentotesteachpart

oftheprojectaswellastheresultsfromtesting.

5.1ProcessingSystem

5.1.1PetaLinux

PetaLinuxwastestedbybuildingtheoperatingsystemsuccessfullyandloadingittoanSDcard

withtwopartitions,oneforthebootdiskandonefortherootfilesystem.Thesepartitionswereaptly

named“BOOT”and“rootfs”asperthePetaLinuxdocumentation.Theoperatingsystemwasthen

bootedontheZedBoardandthefunctionalitywaschecked.ThesoftwarebeingrunontopoftheOS

layerwastestedinasimilarmanner,asitscompilationcoincidedwiththePetaLinuxcompilation.

AlthoughbothPetaLinuxandthesoftwarecompiledsuccessfullyandranontheZedBoard,functionality

innumerouspiecesofsoftwarewasnotworking,asisexplainedinthefollowingsections.

5.1.2LightCrafterAPI

TheLightCraftersoftwarewasinitiallytestedsuccessfullyonaPC.Sampleimageswereplacedin

afolder,theLightCrafterwasconnected,andthesoftwarewasthenrununderUbuntu.TheLightCrafter

wassuccessfullyloadedwiththeimagesandrespondedtotheinputtriggerwhileprojectingusingthe

correctLED.

TheLightCraftercontrolprogramwasthentestedinthePSbycompilingitwithPetaLinux,

attachingtheLightCrafterviaUSBOTGtotheZedBoard,andrunningtheprogram.Althoughthe

programsuccessfullyranwithoutissue,itcouldnotutilizetheRNDISconnectiontotheLightCrafterover

USBOTG.NumerousstepsweretakentoresolvethisbyalteringthePetaLinuxkernelconfiguration,

howevernostepstakenprovedeffective.TheunderlyingcauseoftheRNDISconnectivityissueis

unknown.

5.1.3BitmapGeneration

Thebitmapgenerationsoftware,whilesuccessfullyrunonthedevelopmentPC,produceda

segmentationfaultwhenrunontheZedBoard.Thisproblemarisesduetothelimitedresourcesofthe

ZedBoardandtheprogramrunningoutofvirtualmemory.Thisisduetotheneedtoallocateanarray

Page 51: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

50

fortheoutputimageandthetemporaryarrayresidinginprogrammemory.Whentestingthebitmap

generationsoftwareonthedevelopmentworkstationPC,testingincludedthegenerationofmultiple

sizesofimagesaswellasusingmultiplepatternsasthesourcedata.Resultsshowedthatduetothe

BMPspecificationsoutputimagesthatdidnotincludeanxdimensiondivisiblebyfourbitswouldbe

skewedunlessotherwisepadded.Theprogramalsoworkedonlyforaselectnumberofpatterns,

resultinginimproperlyscaleddataforotherpatterns.Thecauseofthisbehaviorwasnarroweddownto

anerrorinthescalingalgorithm.

5.2ProgrammableLogic

EachfunctionalblockinthePLwastestedindividuallytoverifythefunctionalityofeachmodule

beforedoingintegratedtests.Thefollowingsectionsoutlinethetestsperformedandexplaintheresults.

5.2.1BRAMread/write

CustomlogictoreadandwritefromBRAMwastestedtoverifythatthedatabeingbothread

andwrittenwasaccurate.Inaddition,thememoryinitializationfileswereconfiguredandtestedto

verifyaccuratedataaswell.

BRAMMemoryInitialization

AblockRAMwasconfiguredtoloadwithaninitialization(.coe)file.Thisfilecontainedtheinitial

contentstobeloadedontheBRAM.Thefilesimplyrequiredaradixanddatavectortodefinethe

desiredcontents.Thememoryinitializationwastestedbyloading4dataelementsof8-bitseach:0xAA,

0xBB,0xCC,0xDD.TheBRAMwasconfiguredtohaveadatabus-widthof8bitsandadepthof4bits

(fouraddresses/elements).Thememoryblockwasinstantiatedintoatestbenchtodetermine

successfuldatainitializationandreadfunctionality.TheresultsareshowninFigure5-1below:

Figure5-1-MemoryInitializationTestBenchResults

Page 52: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

51

TheBRAMwasthenmodifiedtohaveadatabus-widthof4000bitsanddepthof2,andwas

testedagain.Theresultsofthe4000-bitdata-bustestcanbeseeninFigure5-2:

Figure5-2-4000-bitDataInitializationTestBenchResults

AsdisplayedinFigures5-1and5-2,bothtestsshowedsuccessfulresultsforreadingpre-loaded

data.Thiswasusedforthefinalimplementation,asthehelixdatawasbepre-loadedinthesystem.

SequentialReadModule

Thereadmoduleinthesliceprocessorcontains20memoryblocks,eachcontainingthedataof

onehelixrotation.Thiswassimulatedinatestdesignwitheachblockofmemoryconfiguredwithadata

bus-widthof50bits,andadepthof160bits.ThemodulereadsfromoneBRAMatatime,withthe

doutbofonemodulebeingtheoutputofthemodule.Themodulethenselectsanewmemoryblockto

readfromonceeachaddresshasbeenvisitedfromthepreviousblock.Onceeachmemoryblockhas

beenvisited,themodulewillstopreadingfrommemory(enableislow).Thedesignwasimplemented

with4blocksofmemoryinatestbenchwiththefollowingresults.TheseresultscanbeseeninFigures

5-3aand5-3b.

Figure5-3a-Testbenchresults

Page 53: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

52

Figure5-3b-Testbenchresults

Asseeninthefiguresabove,themodulesuccessfullyreadallthedatafrommemoryblock0,

andshowedasuccessfulswitchtomemoryblock1.Thedoutbvalueswerealsovalidatedbycomparing

themtothememoryinitializationfiles.Thistestverifiedthesequentialreadfunctionalityofthecustom

logicandallowedforexpansiontothefull20blockimplementation.

5.2.2SliceProcessor

Eachfunctionalmodulewithinthesliceprocessorwastestedbeforeintegratingthemintoa

singlefunctionalunit.Thisincludedtheslicemodule,sequentialreading,andsequentialwriting.

SliceModule

Theslicemodulewasinitiallytestedusinga3x3x3gridtoverifyfunctionality.Theinputstothe

modulewereafullyvoxelizedcubeforthe3Dobject(obj)andaslantedplaneoutlineastheintersecting

surface.Imagerepresentationsoftheseareshownbelow:

Figure5-4-3Dobject(left)andintersectingsurface(right)

Page 54: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

53

Theexpectedprocessingwouldresulttothefollowing:

27’b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

& 27’b 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1

--------------------------------------------------------------------

27’b1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1

--------- CONVERT TO 2D-------

=> 9’b1 1 1 1 0 1 1 1 1

ThetestbenchwassimulatedandshowedtheexpectedresultasseeninFigure5-5.

Figure5-5-Testbenchresults

ThemodulewasthenimplementedinhardwareusingtheZedBoardtodisplaythe2Dresulton

aVGAdisplay.Thefollowingtestmodulewasdesignedandimplemented.Themoduletotestslicing

usingVGAcanbeseeninFigure5-6.

Page 55: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

54

Figure5-6-Slicetestmoduleblockdiagram

Thesameinputswereused(generatedwithintheVerilogcode)asthetestbench.The9-bit

outputwasmappedtothecorresponding3x3gridandresultedintheimageshowninFigure5-7.

Figure5-7-HardwareImplementationResult

Page 56: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

55

Theinitialtestswerethenexpandedforthe20x20x20resolution.Todoso,a20x20x20VGA

displaygridwasdesignedandimplemented.Bydefault,thegridwoulddisplayasallpurple(indicating

anoutputofallzeros)asseeninFigure5-8:

Figure5-8-Blank20x20x0grid

Eachsquareonthegridwasmappedtoabitthatcorrespondstotheoutputoftheslicemodule

(twoD).Whenabitisequalto1,itsetthecorrespondingsquaretowhite.Thefunctionalityofthegrid

wastestedusingtoverifythebitsweremappedtothecorrespondingsquaresbeforetestingtheslice

module.Theslicemodulewasthenimplementedusingthevoxelmodelsofthecarandhelixexported

fromtheMATLABsimulationsasinputs.TheresultsareshowninFigure5-9bwiththeMATLABresultfor

comparisoninFigure5-9a:

(a) (b)Figure5-9-(a)MATLABsliceresults(b)Hardwareimplementationresults

Theresultsshowedasuccessfulimplementationoftheslicingmodule,withthe20x20grid

outputshowingtheexactsameresultastheMATLABsimulation.TheVGAtestmodulecodecanbeseen

inAppendixD.

Page 57: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

56

SequentialSlices

Theslicemodulewasthenintegratedwiththesequentialreadmoduletoensurethesystem

wasabletoloadthehelixdataforeachrotation,andgeneratetheslices.Thistestmoduledirectedthe

outputoftheBRAMreadtotheslicemodule,andtheslicemodulewasenabledoncetheBRAMread

modulehadfinishedloadingtheentiremodel.Themodulewastestedinatestbenchandtheresultscan

beseeninFigure5-10:

Figure5-10-PLSliceSimulationResults

Thefigureshowsslice_engoinghighaftersurf_counthasreached9f,indicatingthat0to159

dataaddresseshadbeenreadfromandloadedreadyforslicing.Theslice_enbitenablesthevoxelslice

module,andtheoutputtwoDwasproduced,representinga2Dslice.Thesimulationshowedsuccessful

resultsinloadingandslicingall20models.

FullSliceProcessorTesting

Thefinalaspectwastointegratethewritingmoduleintothesliceprocessorsystem.Themodule

wasintegratedintothetoplevelsliceprocessordesignandwassimulatedwiththewholesystem.The

fullsystemtestbenchresultscanbeseeninFigure5-11:

Page 58: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

57

Figure5-11-PLSliceProcessorSimulation

Thesimulationshowedsuccessfulresultsforthecontrolofthewritemodule.Thewaveform

aboveshowsthatthemomentthatread_countreachesthelastslice,thuswritingwillbeenabled

(write_engoeshigh).Aswrite_engoeshigh,theappropriatedinandaddressisgeneratedfortheBRAM

writeoperation.

Page 59: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

58

5.2.3EncoderModule

Theencodermodulewastestedusingatestbenchtosimulatetheencodercircuitry.Thetest

casesverifiedthatthepulsesignalfollowstheoppositeoftheinputoftheencodersignal,butonlyafter

thehomesignalhasbeendetected.AsseeninFigure5-12,thetestbenchshowedsuccessfulresultsfor

theencodermodule:

Figure5-12-EncoderModuleTestResults

Inaddition,theencoderhardwareimplementationwastestedinwiththemechanicaland

projectionsystem.TheencodercircuitrywasconnectedtotheZedBoard,andanoutputwasconnected

totheLightCrafter(seeAppendixH).TheZedBoardwasprogrammedandthefunctionalityofthe

encodermodulewasverifiedbyturningtheencoderwheelbyhand.Atestimagesequencewasused

andshowedsuccessfulresults,witheachframetriggereduponeachpositoindetectedbytheencoder.

5.3MechanicalSystem

Theencodercircuitrywastestedtoensureareliableandconsistentsignalwhilstrotating.This

wasaccomplishedbymeasuringtheoutputofbothencodersensorsusingadigitaloscilloscope.The

widthsofboththehomepositionpulseandencoderpulsemeasuredtobe640µswhenspinning.The

encodertestingincludedmotortestingbymeasuringspeedwhilstspinningunderfullload.Thisequates

to1.563kHz,whichiswellbelowthe4KHzmaximuminputtriggerconstraintoftheLightCrafter.Itcan

beseenbelowinFigures5-13aand5-13bthatbothsetsofpulsesappearconsistentandoccurata

consistentrate.Theencodersignalisrepresentedbythesecondchannelinbothoscillogramswhilethe

homepositionisdisplayedonthefirst.Theencodermoduletakesanactivelowsignalduetothe

phototransistorspullinglow,thereforethepulsesoccurwhenthehighsignalfallslow.

Page 60: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

59

Figure5-13a-EncoderDetailView Figure5-13b-HomePositionDetailView

5.4FullSystemTests

Thefinalsystemimplementationwastestedtoverifythefunctionalityofthevolumetricdisplay

system.TheStanfordBunnymodel[9]wasusedtodoso.Theresultsforeachstageofthesystemare

presentedbelow.

Voxelization&Slicing

ThefirststageofthesystemwastovoxelizetheBunnymodel.TheMATLABsystemsimulation

scriptwasutilizedtogenerateavoxelizedmodelwithagridsizeof20x20x20asseeninFigure5-14

below:

Figure5-14-VoxelizationResults

Page 61: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

60

Slicing

Thenextstageofthesystemwastoslicethevoxelizedmodel.TheMATLABsimulationscript

accomplishedthisbyrunningtheslicingalgorithmwiththeBunnymodelandavoxelizedmodelofevery

helixrotationposition.TheresultsoftwoslicesareshowninFigure5-15below:

Figure5-15-SlicingResults

Theslicesgeneratedwereverifiedwiththethree-dimensionalintersectionsgeneratedbythe

script,toensurethatthex-yplanewascapturedaccurately.TheMATLABgeneratedfigureswerethen

convertedintomonochromebitmapfileswithasizeof608x684(arequirementforLightCrafter

configuration)usingMicrosoftPaint.

Projection

TheLightCrafterwasthenconfiguredtoStoredPatternSequencemode,withtheexternal

triggersettingactivatedusingtheLightCrafterGUI.The20bitmapsofthesliceswereuploadedtothe

LightCrafterreadyforprojection.TheZedBoardwasthenprogrammedwiththeencodermodule,and

theDCmotorwasswitchedon.Theprojectionsequencecommencedonceahomepositionwas

detected,andtheresultingvolumetricimagecanbeseeninFigure5-16.

Page 62: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

61

Figure5-16-VolumetricDisplayResult

Thevoxelizationandslicingalgorithmsshowedsuccessfulresults,andtheprojectionsystemwas

abletogenerateathree-dimensionalimage.LookingcloselyatFigure5-16above,individualvoxelscan

beseenwithinthecylindricalshapeofthespinninghelix,andavisiblefigureisobserved.However,the

imagewasdistorted,andthebunnymodelwasdifficulttodistinguish.Thedistortionisinpartdueto

theangleofprojectionoftheLightCrafter.Inaddition,theStanfordBunnymodelwasnotconically

distortedtoaccountfortheconeangleoftheLightCrafter.Eventhoughtheimagewassomewhat

distorted,theresultsofthesystemwasconsideredasuccessduetoitsabilitytoprojectastatic,visibly

voxelizedvolumetricimage.

Page 63: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

62

Chapter6:Conclusion

Thisprojectsuccessfullycreatedavolumetricdisplaysystemthatdisplaysa3DCADfileintoa

three-dimensionalvolume.ThefinalsystemimplementedprocessedaCADmodelonaPCtogenerate

thetwo-dimensionalslices,configuredtheLightCrafterusingaGUI,andcontrolledtheprojection

synchronizationusingencodercircuitryandcustomlogicontheZynqSoC.

TheresearchconductedonvolumetricdisplayconceptsandCADfilemanipulationresultedin

thedevelopmentofworkingvoxelizationandslicingalgorithms.Thesecanbeusedtosimulatea

volumetricdisplay,aswellasgeneratethesliceimagestobeprojectedfromaPC.Customlogicfor

slicingwassuccessfullydesigned,implementedandtestedtoshowcasethehardwareprocessing

functionalityinthesystem.Additionally,theimplementationofPetaLinuxontheARMProcessor

allowedforexperimentationandtestingofanembeddedoperatingsystemaswellasthetestingof

embeddedsoftwareapplications.Acompleteprojectioncontrolsystemwasalsosuccessfullydesigned,

built,andtested,includingmechanicalhardware,a3Dprintedhelix,andencodermodulethatwas

capableoftrackinghelixrotationalpositionsandthesynchronizationofthemotorwithprojected

frames.

Althoughmanyaspectsoftheembeddeddesignweresuccessfullyimplementedinsimulation,

theteamwasunabletoimplementtheseintothefinalsystemimplementation.Inordertotransform

theprojectdeliverablesintoafullend-to-endembeddedsystem,multipleitemsthatwereinthe

proposedandsimulateddesignbutnotinthefinalimplementationmustbetakenintoaccount.First,

thevoxelizationsoftwarewasnotfullydevelopedinCandthuswasnotimplementedinPetaLinux.This

isduetotimeconstraintsandprojectscope.Thisholdsequallytrueforthebitmapgenerationsoftware,

whichattemptstoutilizemoreresourcessuchasvirtualmemorythantheZynq-7000SoChasavailable

toit.ThedeliverablealsoreliesonaconnectiontoaPCinordertoloadtheprojectionimagesbecause

theUSBconnectivitywiththeLightCrafterusingRNDIScouldnotbeimplementedontheZedBoarddue

totimeandtechnologyconstraints.Althoughmanyattemptsweremadetomendtheconnectionissue,

asolutioncouldnotbefound.Thefunctionaldeliverablereliesonthevoxelizationbeingcompletedin

MATLABandtheLightCrafterbeingconfiguredusingaworkstationPC.

Therearealsovariousitemsthatwerenottakenintoaccountintheinitialdesignprocess.Each

componentofthedesignedsystemreliesonaseparatepowersourcewhileideallyafinalproductwould

utilizeasinglepowersourceresponsibleforeverycomponent.Themotorisalsonotcontrolledbythe

systembutinsteadmustbemanuallystartedafterboththeprojectorandprojectioncontrolsystemare

readyfortherotationtobegin.

Page 64: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

63

TheZedboardandZynqSoCprovedtobetheidealplatformfortheresearchanddevelopment

ofthesystem.Thecombinationoftheembeddedprocessorandprogrammablehardwareprovided

flexibilityintheexperimentationanddevelopmentofthedifferentprocessingmodules,allowingfor

changesinthesystemdesign.TheSoCwouldbeidealforacompleteembeddedsystemtoreapthe

benefitsofbothsoftwareandhardwareprocessing.

6.1Futurework

Therearevariouscomponentsofthesystemthatcanbeimproveduponthroughfuturework.

Oneimportantissuethatisapparentwithboththecurrentdesignandphysicalsystemisthelackof

distortioncompensation.Theconeanglehasbeencompensatedforbyusingaconically-distortedhelix

toslicethemodel,howevertheangleofthebeamoutoftheprojectorisnotdirectlytangenttothe

normalvectoroftheprojectorlensandthusneedstobetakenintoaccountbytheslicingalgorithm.

OtherfutureworkwouldinvolveunifyingtheZynqSoCplatformandDLPplatformontoasinglepieceof

hardware.BothsystemsutilizeanFPGAforparallelprocessingandafutureunificationwouldallowthe

twosystemstoshareFPGAfabric,removingtheneedfortheRNDISUSBconnectivityaswellastheneed

tobringtheslicesbackintotheprocessingsystemforthegenerationofbitmaps.Thisalsowouldlower

latencyinthattheLightCrafterwouldnotneedtorelyonitsownonboardLinuxsystem.Inaddition,the

resolutionoftheprojectedimagecanbeimprovedfrom20x20x20forabetterqualityimage.Thismay

requiretheuseofexternalDDR3memoryasopposedtothesoleuseofon-chipblockRAMtomeet

memorycapacityrequirementsofincreasedresolution.

Page 65: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

64

References[1] J. Geng, “Three-dimensional display technologies,” Advances in Optics and Photonics, vol. 5, no. 4,

p. 456, 2013. [2] M. David, “New Approach to Volumetric Displays,” The Critical Technologist, 2012. [3] B. G. Blundell, “Volumetric Displays,”AccessScience (McGraw-Hill Education, 2014). [4] J. Yue, F. Jiao and C. Shen. “The key technologies of helix rotating screen volumetric-swept

display system.” 2009, . DOI: 10.1109/ICISE.2009.1227. [5] Scratchapixel. "Introduction to Polygon Meshes." Scratchapixel. 02 Apr. 2015. Web. [6] “Polygon mesh,” Wikipedia, 2017. [Online]. Available:

https://en.wikipedia.org/wiki/Polygon_mesh.[7] J. Xing et al. “Imaging algorithm for volumetric display based on double-helicoid scanning screen.”

2012, . DOI: 10.1109/IBCAST.2012.6177531 [8] M. W. Jones, “The production of volume data from triangular meshes using voxelization,”Computer

Graphics Forum, vol.15, pp. 311-318, 1996. [9] G. Turk, “The Stanford Bunny,” The Stanford Bunny, 2000. [Online]. Available:

http://www.cc.gatech.edu/~turk/bunny/bunny.html. [10] S. Patil and B. Ravi. “Voxel-based representation, display and thickness analysis of intricate shapes.”

2005, . DOI: 10.1109/CAD-CG.2005.86. [11] A. Hughes, “Electric motors and drives: fundamentals, types, and applications.” Kidlington: Elsevier,

2006. [12] F. Reed, “How Do Servo Motors Work,” Jameco Electronics, Belmont, CA. [Online]. Available:

http://www.jameco.com/jameco/workshop/howitworks/how-servo-motors-work.html. [13] B. Lipták,” Instrument Engineers' Handbook.” Boca Raton, FL: CRC Taylor & Francis, 2006. [14] “Geometric Optics for DLP®,” Texas Instruments, Dallas, TX, 2013. [Online]. Available:

http://www.ti.com/lit/an/dlpa044/dlpa044.pdf [15] T. Wilson, “How DLP Sets Work,” HowStuffWorks, 2005. [Online]. Available:

http://electronics.howstuffworks.com/dlp2.htm [16] G. F. Marshall, “Handbook of optical and laser scanning,” Lincoln Laser, Boca Raton, FL: CRC

Press Taylor & Francis, 2012 [17] “DLP vs LCD Projectors - Guide,” Purple Cat - Audio Visual products and installation, Ossett, UK.

[Online]. Available: http://www.purple-cat.co.uk/dlp-or-lcd-projectors-guide [18] Zedboard. http://zedboard.org/sites/default/files/product_spec_images/ZedBoard_RevA_sideA_0_

0%20%281%29_0.jpg [19] "Zynq-7000APSoCFamilyProductTablesandProductSelectionGuide,"Xilinx.[Online].Available:

https://www.xilinx.com/support/documentation/selection-guides/zynq-7000-product-selection-guide.pdf

[20] Xilinx. http://www.wiki.xilinx.com/file/view/block_sata.png/516676974/800x483/block_sata.png [21]"ZedBoard(Zynq™EvaluationandDevelopment)HardwareUser’sGuide,"ZedBoard.[Online].

Available:http://zedboard.org/sites/default/files/documentations/ZedBoard_HW_UG_v2_2.pdf[22] ZedBoard. http://zedboard.org/sites/default/files/product_spec_images/block%20diagram

_0_0.jpg [23] “DLP® LightCrafter™ Evaluation Module (EVM) User's Guide,” Texas Instruments, Dallas, TX,

2014. [Online]. Available: http://www.ti.com/lit/ug/dlpu006e/dlpu006e.pdf [24] Texas Instruments. http://www.ti.com/diagrams/dlplightcrafter_dlp_lightcrafter_board_1.jpg [25] Adam A. “Mesh voxelisation,” MathWorks. [Online].

Page 66: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

65

https://www.mathworks.com/matlabcentral/fileexchange/27390-mesh-voxelisation[26] “Porsche,” National University of Singapore STL Library. [Online].

http://www.eng.nus.edu.sg/LCEL/RP/u21/wwwroot/stl_library.htm.[27] “Bitmap Storage,” Microsoft. [Online]. Available: https://msdn.microsoft.com/en-

us/library/windows/desktop/dd183391(v=vs.85).aspx [28] “AXI Reference Guide,” Xilinx, 2011. [Online]. Available: https://www.xilinx.com/support/document

ation/ip_documentation/ug761_axi_reference_guide.pdf

Page 67: Volumetric Display Research...1 Abstract The goal of this project was to research and develop a volumetric display system that allows a three-dimensional CAD file to be displayed in

66

Appendices

AppendixA:MATLABSimulationCodeTheSystemSimulationMATLABscriptcanbefoundin:

VDR_MQP_FILES/MATLAB Algorithm and Sims/Mesh_voxelization/VOXELIZE_SLICE_SIMULATION.m

AppendixB:LightCrafterAPICode

TheLightCrafterAPIcodecanbefoundin:VDR_MQP_FILES/PS System/lightcrafter_code_arm/main.c

AppendixC:BitmapGenerationCodeTheBitmapGenerationcodecanbefoundin:

VDR_MQP_FILES/PS System/bmpgen.c

AppendixD:SliceModuleTestCodeTheSliceTestwiththeVGAdisplayVivadoProjectarchivecanbefoundin:

VDR_MQP_FILES/PL System/Slice_Test.xpr.zip

AppendixE:SliceProcessorCode

TheSliceProcessorVivadoProjectarchivecanbefoundin:VDR_MQP_FILES/PL System/Slice_Processor.xpr.zip

AppendixF:EncoderModuleCodeTheEncoderModuleVivadoProjectarchivecanbefoundin:

VDR_MQP_FILES/PL System/Encoder_Module.xpr.zip

AppendixG:FullPLSystemCodeTheFullPLSystemVivadoProjectarchivecanbefoundin:

VDR_MQP_FILES/PL System/Full_PL_System.xpr.zip

AppendixH:WireColorGuideThecolorcodedwiresofthesystemareconnectedtotheZedBoardpinsasseeninthefollowing

image.PleaserefertotheZedBoardHardwareUser'sGuideforpinoutlocations.