Team’s Status Report for 9/25

This week we worked on designing the PCB as well as fake data for choosing an ML model. Sophia took lead in designing the PCB since she has the most experience with building circuits and is currently taking a course specifically for PCB design. There were some obstacles in getting the PCB correctly designed, but Sophia was able to find ways around it. Stephanie and Rachel both worked on creating fake data; Stephanie and Rachel researched the sensors and created fake data based off of that using two slightly different approaches. We decided that making these datasets separately would be a good idea so that we have a little more variance in the data and can more confidently choose the model for our use case. For more details on the PCB design or fake model generation, please read our individual status reports.

For the next week, we are planning on having the PCB completely designed and sent to manufacture. We also will test and settle the ML model for our project– Stephanie has already done some preliminary testing and all of our candidate models seem to be sufficient, but more robust testing is necessary. From the software perspective, we are right on schedule with determining the ML model. However, from the circuits perspective, it seems that our order for the parts was not seen until recently and we also do not know how long the PCB board will take to print, so these things could set us back a bit. In addition to solidifying the ML model, while we wait for the parts to arrive, we can work on preparing our design presentation for the following week.

Sophia’s Status Report for 9/25

This week I familiarized myself with Fusion 360 to create a PCB to more neatly house all of our hardware.

When creating the schematic for the circuit, I had to reference the spec sheets for the Arduino Nano and ICM-20948 IMU to ensure they could be secured to the board. I struggled trying to set the dimensions between pin components on the board. I wanted to create a customized component of two rows of female pins to mount the Arduino Nano and ICM-20948 IMU but this was unsuccessful as I couldn’t get Fusion 360 to recognize that two non-connected pieces should be considered one item. I ended up spacing the rows of female pins manually by referencing a grid overlay.

We ordered our parts last week but they haven’t come in yet, so that puts us a little bit behind. Also the PCB hasn’t been ordered yet and I am not sure how long it will take to be made, so this may cause further delays.  It’s crucial the PCB is designed correctly.

Next week, I will finalize the PCB design and send off the files to get it manufactured.

Stephanie’s status report for 9/25/2021

This week Rachel and I worked together on generating fake data for gloves sensors to test out different machine learning models. We have decided to each generate a different set of data. Having data with some differences are good for making sure that models are generalizing well and not overfitting to a particular set of data.

Each sample of data consists of bend angles of each finger from flex sensors and nine values from each component of the IMU (accelerometer, gyroscope, and magnetometer). The bend angles for each finger are estimated by observing the finger’s pose for each gesture. The values will then be sampled from a normal distribution with some variance to account for variations in poses. There’s also a possibility of generating completely random numbers to consider for outliers. Similar procedures are done for IMU data generation. Data is generated by estimating a reasonable range based on the directions and orientations of the gestures. The estimations are based off an IMU data sample sheet that I have found online.

I have also done some preliminary model testing to check their accuracies. The models are trained and tested on the data that I generated, so there can be a possibility of overfitting. The models that I have tested include: SVM, perceptron, KNN, random forest, and neural networks. So far, most of these models meet our threshold for accuracy, but more testing should be done with different data sets and more model refinements are needed.

I believe we are on schedule. We have placed our order for the parts needed for the glove and started researching on models to use. Next week, I plan dive deeper into each model to find the optimal parameters to achieve best accuracy and latency and also get to test them different data sets.

Rachel’s Status Report for 9/25

This week I worked with Stephanie on generating fake data. We both did research on the data that the sensors output and each generated a set of fake data using our own methods. We decided that rather than working together to generate one set of fake data together, it would be beneficial to do separate data generation methods, so that we have more data to work with and can be more sure that the model we select based on this fake data is likely to be the most fit for the task of gesture identification. Each data point has a bend degree for each finger as well as nine values outputted from the IMU.

For each finger as well as each component of the IMU, I randomly select an angle within a certain range for each gesture. This angle range was determined by us figuring out what a reasonable angle each finger should make for each gesture. The random selection from this range is meant to simulate the differences in how people may make each gesture. Based on the variance from the flex sensors, I add some noise to each datapoint by grabbing a random value from a normal distribution.  This added noise is meant to simulate the variance from the sensors themselves.

Even though we have our fake data in terms of degrees, we hypothesize that we might get better results by feeding either voltage or resistance directly into the model (as opposed to translating it to degrees first). I read a paper researching flex sensors’ resistance values and it found that the relationship between angle and resistance actually isn’t linear for 0-30 degrees, so doing a direct translation may actually not be representative of the data collected. However, for the purposes of picking a model, our fake data in degrees is just easier to understand and will likely suffice. We might also consider collecting data at multiple points in time since one snapshot of the sensor’s data may not be enough to accurately determine the gesture the user is making.

I would say we are right on track with our timeline. We have requested all the parts we need to build our glove and are already working on figuring out the optimal ML model as well as began designing the PCB for the glove. Next week, I plan on working with my group on deciding on a few models to try out and training/testing them to figure out the best model for our use case. We will need to consider both accuracy and latency when deciding the model.

Team’s Status Report for 9/18

This week, the team worked on planning out a schedule for our project as well as cut down on the scope of our project. Initially, we had wanted to have our glove determine all the letters of the alphabet in ASL as well as a few common phrases, but after closer evaluation and more thorough planning, we determined that we don’t have enough time for such a large scope project.

Another change to our project is that our glove will no longer be wireless. Having a glove that can’t reliably transmit data to compute would be detrimental to our project and having the glove wired to our computer would not be changing the fundamental function of the glove.

We also spent a lot of time thinking about the requirements for our products, originally from an implementation perspective then shifting to a user-experience perspective. After shifting perspectives, we had to redo our research so that our decisions on the requirements were educated.

For next week, we plan on ordering parts (ordering extras for back up in case something breaks) as well as determining the ML model we will use to classify each gesture and creating a dummy dataset to identify which model fits our use case the best. We will also be giving our proposal presentation during this week.

Sophia’s Status Report for 9/18

This week I focused on finding and comparing different sensors to  buy for our glove. I found flex sensors from two vendors (Sparkfun and Adafruit), however the sensor itself was from the same manufacturer (SpectraSymbol). The flex sensors also came in a short size (2.5″) and a long size (4.4″). After discussion,  our team decided that we should purchase the long sensors for all fingers. I also found four different IMUs. Two of them would already be installed onto a PCB while the other two would require us to put them on a PCB ourselves. I looked at what kind of data each IMU outputs and we are leaning towards purchasing the IMUs which are already installed on a PCB as that would streamline our construction of the glove.

During our mandatory labs, we discussed the scope of our project and pared down a lot of the requirements. Instead of recognizing the entire alphabet, we are now aiming to recognize five gestures. We also pared down the design for the glove. To account for time, we decided not to make the glove wireless. A wireless feature would increase the complexity of data transmission and analysis. I updated our system sketch to account for this change.

I have also enrolled in 18-021 to learn how to fabricate a PCB because we plan to build one in order to keep the wires on the glove minimal.

In the upcoming week, we plan to order the parts to build the glove. We are on schedule if we order and receive the parts within the next week. To stay on schedule we may need to expedite shipping.

 

Rachel’s Status Report for 9/18

This past week, we spent most of our time re-evaluating our project specification and cutting down our design to a more feasible scope to be completed in the time we have this semester.  I mainly focused on coming up with requirements for our project, researching reasonable, desirable (from a user standpoint), and quantitative metrics to evaluate our project. I also tried to imagine the challenges we may come across while building the glove and find ways to address them. During mandatory lab meetings, we communicated with each other our findings and how we can adjust our project accordingly.

I would say our group is slightly behind on ordering parts: we had cut down the design and now have more budget to try out a few different sensors to determine which is the best, so we are still gathering a few IMUs that we can try out. However, I don’t think this is a huge issue as long as we order parts at the beginning of this week.

This upcoming week, I will work on building a fake dataset that we can use to test different machine learning models on while our glove is being built so that we can determine which model we want to use in parallel with building the glove.

Stephanie’s Status Report for 9/18

During our mandatory lab meeting, the team collaboratively researched about project design and implementation and worked on the presentation slides. We will be meeting this Sunday to finish up the slides and finalize the type of sensors that we will be using. Since our project must be done sequentially for most part, the team will not be splitting up a lot of the work.

I took on the task of setting up the team’s website and writing the project overview. I also looked into some machine learning models that our project can use and established pros and cons for each.

The team is slightly behind schedule on ordering the glove and sensors, but we’ll be ordering them right away after this Sunday’s meeting.

In the coming week, I will be presenting our proposal to the class and start looking deeper into viable machine learning models and performing tests to see which model can give higher accuracy, and if possible, implementing a baseline code structure for classifying gestures.