Yon’s Status Report 4/12/25

This week I mostly worked on making a shareholding script to isolate the scanned object. We realized that, especially with the acrylic cover sheet, it’s impossible to center the object on the rotary arm. Since we’re still guaranteed that the scans are 90 degrees apart regardless of the center of rotation, we can pretty trivially use thresholding to find the bounding box of the object and align them in x/y, then rotation adjust as planned. This shouldn’t be too challenging but we have to overcome the fact that the manipulator legs are visible, so we need to crop them out somehow. Another possible approach would be to take the arithmetic mean of the four images, find the bounding box of the mean of the four objects, then take the center of rotation as the center of that bounding box.

Next week we will test both threshold approaches and proceed from there. I also still have to print and scan the test object, but it’s already designed so that should be quick.

Yon’s Status Report 3/29/25

This week we ran for the first the my subsystem together with Sophia’s scanner controller. We rotated the coin manually so the normal map is noisy, be we see expected behavior for the areas we don’t spin (flat normal map). I also designed the test object we’re going to use, and printed it.

This sets us up well for the demo this coming week, as Theo just implemented his system so we’ll be able to run a full system test. I’ll also scan the test object on the benchmark scanner and probably try and run it on ours (maybe for the demo) to begin doing qualification. Lastly, I’ve been thinking about how we might threshold the object to avoid performing the pretty computationally heavy normal->depth map operation on the part of the scan we don’t care about. I think this should be simple if we just threshold the normal map, but ill test it and then work it into my subsystem.

Yon’s Status Report for 3/22

I spend most of this past week trying to debug the macOS scanner API. We found out that mac has a different framework, meaning we would have to edit the project configuration file (or choose between one of two files) when executing the C# file based on the user’s operating system. There are other issue with mac still that we haven’t been able to work out. I also printed an adapter for the stepper motor to connect to the suction cup, and Theo is in the process if fitting and and possibly making some adjustments. Lastly, I designed the test object.

Next week I hope to finish debugging the mac scanner API so we can run tests with Sophia’s software interfacing with Theo’s hardware. If we’re able to do that we’ll have some images which we can feed into my normal map computation. I also hope to 3D print the test object I designed and scan it using one of the benchmark 3D scanners we picked out.

Yon’s Status Report for 3/15/25

I was sick for most of this week, so I didn’t get that much done. I did begin to test Sophia’s scanner code on my macOS computer and ran into some issues. I worked through some of them and documented the solutions, but the code still doesn’t run so we have more debugging to do. I also 3D printed a new version of the electronics mount.

I’m a little behind now because of being sick, but luckily we built in some padding in the schedule for implementing to image processing subsystem. Next week I’ll hopefully finish implementing a C++ implementation of the normal map construction with n=4 and continue looking into the normal to depth map options (custom vs library vs OTS).

Yon’s Status Report 3/8/2025

Last week I finally worked out the normal map math and programming approach for a variable number of angles, and detailed my findings in the design report. I also finished programming a python version of the normal map construction code in python for initial testing of other subsystems. This version is slow and not parametrized, but should work fine for the purposes of helping Theo and Sophia characterize their subsystems. I also continued to assist with printing the electronics mounts and advising on design decisions. Lastly, I identified the benchmark 3D scanners we plan on using to qualify our scans.

Next week I plan to start implementing my math in low-level code, and hopefully test it on scans from my teammates systems. I also hope to get a head start on qualification and start scanning some test objects on the benchmark scanners. As we discussed in our last meeting, this requires a sample object, ideally manufactured in two different materials. I will probably ask Theo to take on the design and metal manufacturing, and I’ll make the 3D printed version.

Yon’s Status Report for 2/22/2025

This week I worked on parametrizing the normal map computation, and 3D printed components for the manipulator. I made progress on the normal map math, but still need some more work to fully parametrize it. That puts me a little behind schedule, but I gave myself some buffer time in implementing the math in code, which should be very quick as its computed naively per pixel. I had to reprint the manipulator parts a few times due to printer issues, but we now have that component made and handed off to Theo for assembly.

Next week I will finally finish the math, and begin testing the manipulator. I can help characterize rotation accuracy and scan quality with/without a cover. I also already have some code written for the normal map computation with n=4 rotations so we could run a full system test if manipulator testing goes well.

Yon’s Status Report for 2/15

My main focus this week has been finding additional literature on photometric stereo, and and beginning to parametrize the work’s findings for our use case (orthographic, fixed reflection angle with a variable number of rotations). I also supported my teammates with purchasing components, reviewing mechanical design, and performing cost-benefit analysis on certain design choices (especially to do with modularity).

Next week I’ll have to finish up parametrize the math and translate that into code. I’ll also help test the manipulator subsystem by analyzing the alignment of the output images.

Yon’s Status Report for 02/08/2025

This week I mostly prepared for our proposal presentation. This meant I worked with my teammates on coming up with our semester’s Gantt chart based on my assessments of my own responsibilities and the dependencies we have on each other’s work. I believe we are on schedule, as we have just created the schedule.

Next week we plan on placing an order that is relevant to all of our subsystems – the scanner – so I plan on providing some input as to the purchase and looking over my teammates recommendations and needs. I also plan on getting started on parametrizing the math from V. Skala and R. Pan via the parameters we plan on optimizing.