Arjun’s Status Update for 5/12

This week Pablo and I discussed integration steps of the Camera and Central Node code. The Central Node could still receive requests, but due the filesize of the images being larger than I expected (1 MB), the central node could not receive all of the image. This resulted in the code for receiving TCP messages to change a good bit. The connection resets early or the connection hangs in an infinite loop while trying to add larger file sizes. This is something I am currently still working on, but can find a solution for by the time of the final video and report. I am considering going back to a C solution due to pre-processing not necessary anymore. This would help due to receiving strings/buffers being able to use heap allocation effectively.

Arjun’s Status Update for 21/11

This week I could not work on the project as much due to a large amount of other commitments. I had discussed with Krish about whether we needed any data pre-processing such as image stitching for the Machine Learning model that he was working on for chair detection. We decided that it wasn’t necessary for the situation, and that we would not worry about implementing that for the future.

Arjun’s Status Report for 14/11

This week I was mainly dealing with concurrency on the current implementation of the central node. The current working implementation was in python, and I was working with the “asyncio” library on python for the utilization of pthreads. However, I was running into issues working with the asyncio library and the program not running correctly due to the library not being completely thread safe and the program running slower than expected. I decided to switch to a select() based concurrency model, which means that the central node server would scan a set of connections to see which needs reading and loop through the connections the read from the connections deemed to be ready. This did not hinder performance of the central node and was still within the metrics that we had set (10 seconds for receiving data, 30s total). I also had a discussion with Pablo about the Jetson Nano and the Wifi adapter, which is being ordered to Pablo’s place to set up there.

Arjun’s Status Update for 7/11

This week, I was able utilize a test client I created that sent small images (40-70 kB) over TCP and have the central node properly receive it the full image, indicated by the central node program. I was able to properly run the test on the Jetson Nano as well.Pablo and I also discussed how we wanted the central and camera nodes to communicate with each other. We finalized that we wanted them to communicate via TCP instead of using HTTP because we didn’t need to utilize the full HTTP protocol to detect images, so using HTTP was redundant. We could not test any code for that since Pablo was working on these parts for the camera node this week.

Arjun’s status update for 31/10

I worked on fine tuning the echo server in python. Pablo and Arjun will need to discuss a protocol for how the nano and particle argons will communicate with each other. This week was a little extra hectic due to unforeseen circumstances so I didn’t have time to do as much as I wanted.

According to the gannt chart we are a bit behind schedule, but the next major task is for Pablo and Arjun to talk about protocol between central and camera nodes, which we can do this week.

Arjun’s status report for 24/10

This week I finalized research with python and have implemented a simple echo server in python using the libraries available. In terms of the gantt schedule, we are a little behind with Pablo and Arjun meeting for node communication. Krish and Arjun discussed communication with the cloud, and are leaning towards using http requests to communicate.

Arjun’s Status Report for 17/10

I have been researching more about switching to a python implementation for the central node code instead of a C implementation. The considerations were because of Krish mentioning the use of POST requests with a csrf token for the website and communication with AWS, as well as image stitching and other image preprocessing. I have been researching more about the libraries in python for sockets, requests, and threading to see if they can offer the same performance advantages that a C implementation would have, as well as get familiar with the libraries since I am used to C code for this type of programming. I am also in the middle of setting up the Jetson Nano properly with its OS and Wifi adapter.

Arjun’s Status Update for 10/10

My first task is to set up preliminary/simple server-side code on an Nvidia Jetson Nano to receive TCP packets. That would involve me writing preliminary server-side code and uploading it to the Nano. I have written preliminary code that sets up a listening socket and echos text back to a client that connects with it. The parts (WiFi adapter and Nano) have arrived this week, and I am in the middle of testing the software on the Nano and getting used to using the Nano. My next goals is to get this code running properly on the Jetson Nano, and look for a replacement Wifi Adapter if any issues arise. I gave a lot of extra time for certain tasks in case anything like this(parts arriving later than expected) occurred, so we are still relatively on schedule.

Introduction

Smart Library is a project that aims to scan a room(particularly a public space) and indicate how many seats are available for use. It also aims to analyze weekly/daily patterns of when seats are usually available, as well as take into account social distancing during the pandemic. Ideally, this will be placed in Sorell’s Library. The users can interact with the information through a website.