This week I mainly worked on just improving the software and trying to get the display to look better. We’ve slightly increased speed to about 200 rpm, and though this is much under our goal of 900, I think at this speed the display is decent enough to be able to visually distinguish if there are any software bugs, which I worked on fixing.
There were a bunch of bugs and improvements I made all over the place to try and make it look better. Two that likely made the biggest difference were increasing angular resolution and fixing a display slicing bug.
For the angular resolution, we previously displayed 120 different images for every full rotation the displays made. However, I noticed that when we tried to display straight lines near the edge of the display, they would appear warped (since the distance between 2 successive images becomes farther as you move further from the center). I doubled this number so we now display 240 images for every full rotation while also testing to ensure both the Jetson and Pi were fast enough to meet this.
The major display slicing bug I fixed had to do with how we sampled frames to display. The way the logic works is that the Jetson stores the entire 3D volume of data in memory, and picks out a 128×64 2D plane to send over to the Pi to display. Previously, this plane we sampled crossed the center axis (like a diameter). However, this is inaccurate for our real physical display because the LED panels have width, so they are actually on planes that are slightly offset from the center (more like chords). Fixing this hopefully will help when things look like they are displayed completely wrong or warped.
Tools, Knowledge, Learning:
I didn’t really find the need for tools I hadn’t used before, but there were a bunch of knowledge gaps throughout the design and implementation of this project. For the overall idea itself, I used previous work to understand the fundamentals behind design decisions and architecture. For example, I often looked back on a video of another person who built a similar device to look at how he designed specific parts to fit together. For lower level details where there was no previous work to build off of, I used AI tools to help fill in the gaps so I could get instant feedback on if my understanding of concepts was wrong. I mainly focused on asking questions in order to develop a robust design so that implementation was easier.