Yuma’s Status Report for 4/6

Accomplishments This Week

We were able to show the interim demo this week on the real software, and it was pretty good. Afterwards, I was able to keep developing the software so multiple scanner modules would be able to plug in. We had some issues where server closes were not detected by the client, so we fixed it by spawning reader threads. One problem I ran into was that when the scanner module is shut down & restarted, the unique identifier I was using would change. This would make the central computer think it was a completely different scanner module joining, rather than one that was already in the system. I’ve been trying to fix this, but at least for the same localhost, restarts after shutdowns are working well.
Demo is viewable at this link: https://drive.google.com/file/d/1JqQbArqMs0_zuo20xcsWn8leIyXCxjUR/view?usp=sharing

Project Schedule and Progress
Progress is strong, and I have accomplished what I expected this time last week. I expect to contribute less during Carnival week due to Booth commitments, though. I have yet to integrate the UI and the OCR, as these parts are handled by my partners and these are still not completed.

Goals for the Next Week
I hope to find other ways to distinguish between the scanner modules even when they are restarted. I hope to also implement a C-ACK for the items being sent, as ACK’ing each item is a lot of messages when a CACK for the most recent item could ACK all the messages behind it as well.

Yuma’s Status Report 3/30

Accomplishments This Week

We have been coding on our laptops the past couple of weeks, and this week we were able to test on the real hardware. This was partially fueled in motivation due to the interim demo, which we are looking forward to demo the barcode scanner and system performance. Jason has been experimenting with other OCR methods, so that is why we were not able to integrate the expiration date part yet. In terms of real hardware, I took a while to understand the broadcasting mechanisms for python, and was able to test message passing between two different nodes. It worked great, and the recommendation algorithm was also implemented. Although the UI is not developed yet, we are able to write commands on the console to simulate this feature (i.e. display the current item list, clear the item list, give recommendations, etc).

Code for this recent week should be viewable at the link: https://github.com/Yumam20/d3-intellistorage

Project Schedule and Progress
Progress has returned back to schedule, where we have started system integration onto the real hardware. Although a big bottleneck is the OCR integration (when it is actually done), the integration part should be the easiest with the framework mentioned in last week’s report.

Goals for the Next Week
I hope to develop more features into the base code regarding the data resiliency portion. I hope to implement the distributed consensus protocol while making sure the code functions.

Yuma’s Status Report 3/23

Accomplishments This Week

We were able to start system integration this week, with my base code and Siyuan’s barcode & API look-up code being integrated. Though the base code needs to be multi-threaded to accommodate multiple scanners, the case with one scanner has been tested locally. Integration with the OCR portion of the code has not been done due its incompleteness, but it should be relatively straightforward. Message passing between the nodes occur by pickle-ing (compressing) a python dictionary, and adding another field in the dictionary for expiration dates should be the bulk of that system integration.

DEMO: https://drive.google.com/file/d/1H2cDMiZZZ_PCPCaR0H5_NAW3WiDHjY_h/view?usp=sharing
[One central computer and one scanner node is instantiated, a barcode is scanned (simulated by entering a PLU), and the user checks if the item is right. The item information then is sent to the central computer, which is confirmed by the consistency of text displayed on the scanner and central modules)]

Project Schedule and Progress
Progress has been good, in terms of catching up from the deficit these past two weeks. We are close to being back on track, with the bottleneck being the OCR integration. I still hope to make more progress on the base code so that there can be some slack during the week of Carnival.

Goals for the Next Week
I hope to start multi-threading the base code to accommodate for multiple scanners. I imagine that this may be complex in terms of synchronization, but I hope to base my code off of the 15-440 KV-store project code.

Yuma’s Status Report for 3/16

Accomplishments This Week

There were no big accomplishments on my side this week. I was visiting my parents at home as they were in a life-threatening car crash this January. However, I was able to set up an echo server for sending messages between the nodes. The closing condition (closing the connection) is still a bit buggy but the code is pushed to our repository at https://github.com/Yumam20/d3-intellistorage/

Project Schedule and Progress

This visit home was unplanned with respect to the Gantt Chart. If it was, I would’ve bought lottery tickets. This though puts me back a week in terms of schedule. I hope to make this work up this coming week.

Goals for the Next Week
I hope to start writing code to integrate the barcode and scanner modules into the main framework. I hope to also tweak the base design based on the design changes we made during the design review process.

Yuma’s Status Report for 3/9

Accomplishments This Week

The main (biggest) part of this week was the design review report. I was in charge of sections 6-9, but ended up helping and rewriting a lot of the stuff in all the other sections. I also fabricated many diagrams that would be put into this report. I think it was a very insightful experience, as trying to explain design choices led me to question my design, sometimes resulting in design changes. It also helped that our design review presentation received constructive criticism, some of which we took in to our design.

One example of a change in design is the temperature sensor. One feedback we received was about the correlation of temperature and “how fast an item expiration goes.” Although it is out of the 12 week project scope to implement some ML algorithm to detect expiration date changes, we decided to install a temperature sensor to our main module. This way we can at least categorize the storage space to be cool/hot and make ROUGH expiration date changes.

Project Schedule and Progress

I did not expect the design review report to take this long. I also did not want to work over spring break, as I was traveling with friends abroad. Therefore, we are behind schedule. I will also be visiting my parents in Philadelphia this coming week as they are being released from the hospital, though I hope to work asynchronously with my teammates.

Goals for the Next Week
I hope to start writing code to integrate the barcode and scanner modules into the main framework. I hope to also tweak the base design based on the design changes we made during the design review process.

Yuma’s Status Report for 2/24

Accomplishments This Week

Firstly, we presented our design review this week. During the Q&A, an interesting alternative for storing data on the central computer & edge servers was proposed — ZFS. I spent some time this week conducting a trade study for this technology versus a vanilla implementation of RAID.

On top of this, I was able to setup the repository for the project and draft the bare-bone code used to register items and communicate between nodes. This code is pushed to the repository. A problem I encountered was formatting the data being sent, but was able to resolve it by performing lossless compression on the class member using the pickle library and unpickle-ing it at the recipient. I would say it was a productive week.

Project Schedule and Progress

Although I was a bit behind schedule last week, I managed to bring it back on schedule this week. I hope to work ahead this week, though I am not sure how much can be done as the design review is also due this week.

Goals for the Next Week

I plan on starting to define an interface between Siyuan and Jason’s portions of the code so that we are on the same page about how barcodes and camera input are being put in as data. I also plan on dedicating a lot of time this week to write and clean up the design review document, as well as review comments that were given on our presentation.

Yuma’s Status Report for 2/17

Accomplishments This Week

Firstly, our hardware arrived this week. I was able to set up the RPI 5 that we are going to use as our central computer. With the Design Review coming up for next week, I also worked with Jason and Siyuan to finalize the details of the design, and talked over some hypothetical questions we would get asked during the presentation. Outside of these main goals, I assisted Siyuan and Jason with their Camera/Barcode modules as completing the setup of the RPI5 was blocked by actually having a mouse and keyboard. We devised a method of acquiring images in focus for the expiration date, which involve taking a buffer of images +-1 second of acquiring the barcode number. OCR will then go through the buffer of the images to determine which one has the highest classification rate, and will use those values. Overall, a very productive week.

Project Schedule and Progress

My progress is a little behind schedule, as we struggled to set up the RPI due to not having a mouse/keyboard to set it up with. We were able to get this issue resolved and I am trying to get back on schedule.

Goals for the Next Week

I plan on starting to develop the MVP software for the center node this coming week. Edge node software development will also happen, but the task is blocked until there is more progress on Jason’s camera hardware progress and Siyuan’s barcode reader progress.

Yuma’s Status Report for 2/10

Accomplishments This Week

This week, much of the time was listening to presentations. We presented our project and we were able to gain more insight into our actual implementation through the questions asked during the Q&A. We also gained a lot of insight into other technical problems and proposed solutions for other teams, such as an important use-case requirement being battery life. I also conducted preliminary software planning to successfully be able to implement our design into reality the following weeks.

Regarding the preliminary software planning, I was able to draft up a diagram (like a FSM) detailing the MVP requirements of the product. In terms of the hardware planning, I was able to communicate with Jason and Siyuan to purchase a LED screen, Raspberry Pi-s, and camera making sure they were relatively easy to integrate with the RPI computing module.

 

Project Schedule and Progress

We are overall on track with the schedule. We had a week full of presentations but we were still able to do  preliminary planning for both hardware and software components, allowing us to actually start implementing them next week.

 

Goals for the Next Week

In the upcoming week, my primary focus will be the actual implementation of the edge node software as well as the central database. The specific deliverables I want to achieve are the following:

Edge Node Software

I plan to have a MVP of the scanner software done by the end of the week. I want to make sure it is able to start up correctly, receive data from both the barcode scanner and camera so that in future weeks we can augment features onto these percepts. I hope to also have the 8am push notification to be up and running on the LED screen.

Central Database

I plan to have a central database on the RPI 5 acting as the central computer this week. Although these scanners would not be communicating by the end of this week, I wish to set this up so that in future weeks, the main problem would be communication rather than data storage and instantiation.