Xuan’s Status Report for 03/25/23

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

I finished assembling the breadboard circuit and testing it to see if it actually worked. The way how Arduino detects the inputs is via a voltage divider circuit, so when the flex sensor was being bent, there would be a different voltage drop. I had to test the other resistor I was using to ensure that the change in the ADC reading from the Arduino had sufficient range; if the other resistor was too small or large, there wouldn’t really be a noticeable change in resistance. I ended up asking for permission from a 220 TA to use the resistors they had in their lab as I asked Professor Tamal if there were available resistors around.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

Progress is on schedule.

What deliverables do you hope to complete in the next week?

This week, I plan to begin soldering the sensors.

Team Status Report for 03/25/23

What are the most significant risks that could jeopardize the success of the project? How are these risks being managed? What contingency plans are ready?

The most significant risk right now is not being able to integrate all the systems in time. We are working to make sure that all our individual subsytems get to a testable state as quickly as possible (aiming for this week) so we can work on integration in time for the interim demo.

Were any changes made to the existing design of the system (requirements, block diagram, system spec, etc)? Why was this change necessary, what costs does the change incur, and how will these costs be mitigated going forward?

None since last week.

Provide an updated schedule if changes have occurred

No changes.

Team work adjustments

No teamwork adjustments have been made. We are currently on track to accomplish our tasks and are currently all just working on them.

David’s Status Report for 3/25/2023

What did you personally accomplish this week on the project? Give files orphotos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

This week, I worked on getting the host HID controller working. This controller consists of two parts: (1) reading data from the HID interface, (2) performing the macros on the host PC.

Most of the work I have completed was figuring out how to perform the macros on the host PC. I have tested the pan gesture already, but it still needs to be calibrated since the sensitivity of drag actions on Geogebra is high. Nevertheless, I was able to control the movement of the mouse and the graph with the program. Since this requires significant work, I tapped Gram to assist in this part. He mentioned that he is currently waiting on the physical module to be finished and is available to provide support. In the next week, we will work on finishing up all the gesture macros on Geogebra.

I am also working on getting the HID interface working on the host PC side. Currently, I have some written some code using HIDAPI to read the data, but I am still designing the program to be multithreaded so that we can read data and perform actions simultaneously. I also discovered that the HID device class spec allows for what is called a Feature Report. This allows me to send calibration settings to the peripheral HID interface. For instance, we can specify handedness with this feature report.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I am slightly behind schedule. About half a week or so. To compensate for this, I tapped Gram to assist in writing some of the macros for Geogebra.

 

Gram’s Status Report for 03/25/23

What did you personally accomplish this week on the project? Give files orphotos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

I worked on smoothening the output of the decision tree over adjacent windows of data. I also implemented a system to map the magnitude of the gesture to the intensity of the action being performed on the computer.

Since I finished this part relatively early, I worked with David to start implementing the functionality for the gesture on the HID side. This will work well for both of us since this is closely related to the output of the gesture classification model I have been working on.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

Progress is on schedule.

What deliverables do you hope to complete in the next week?

This week, I plan to finish the gesture dispatch on the HID and integrate that with the gesture classification model.

Team Status Report for 03/18/23

What are the most significant risks that could jeopardize the success of the project? How are these risks being managed? What contingency plans are ready?

The most significant risk right now remains the same — if the windowed time series analysis turns out to be inaccurate. As described last week, if this doesn’t work, we plan to incorporate more rigorous calibration into the system or possibly restructure the gestures so that they are more distinct from each other. Additionally, we could resort to the neural network approach, although this is the less ideal case because it will likely have a performance penalty and may not necessarily have better accuracy.

Were any changes made to the existing design of the system (requirements, block diagram, system spec, etc)? Why was this change necessary, what costs does the change incur, and how will these costs be mitigated going forward?

None since last week.

Provide an updated schedule if changes have occurred

Team work adjustments

No teamwork adjustments have been made. We are currently on track to accomplish our tasks and are currently all just working on them.

David’s Status Report for 3/18/2023

What did you personally accomplish this week on the project? Give files orphotos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

This week, I spent my time writing the peripheral HID controller code and getting it to work on the Raspberry Pi.  I also wrote a script in Python that tests every data type in the HID report. After writing the code, I tested this system on the Pi with the install script. I had to test two things: (1) if the Pi connection through the USB-C port and the power splitter was working as intended, and (2) if the Pi is recognized as a peripheral device.

When I installed the drivers and the kernel configuration with configfs with the install script, I found that the connection through the USB-C port was working as intended. Plugging the Pi to my laptop caused it to show up in Windows (in Parallels) as a USB HID device. However, it initially did not work and failed to start due to a setup error (error 10) as seen in Windows Device Manager. I was able to trace the problem to the install script. In order to easily debug the HID report descriptor, I wrote it in a Python file that is relatively easy to read. Unfortunately, I did not notice that the Python file was being called in the setup script without it being present in the same folder. To fix this, I hard-coded the report descriptor value result from the Python script into the setup script. After I made this change, the Pi was successfully recognized as an HID gamepad.

Here is a demo of Windows receiving the test inputs from my test script. The test script exercises some positive and negative values for each data axis.

https://drive.google.com/file/d/1EWyLNByB8uvyoV85uuTF6MlHb0v3GAD7/view?usp=sharing

Next week, I will work on getting the macros working on Windows from a Python program. Additionally, I should also integrate the setup module with the HID controls.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I am on schedule. See Gantt Chart below

As you’ve now established a set of sub-systems necessary to implement your project, what new tools have your team determined will be necessary for you to learn to be able to accomplish these tasks?

Since the next part is figuring out how to control the cursor and inputs on Windows, I have to learn how to do that from Python. In addition, I have to learn how to use HIDAPI on Windows to parse the HID input.

Gram’s Status Report for 03/18/23

What did you personally accomplish this week on the project? Give files orphotos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

This past week, I wrote code for the controller to collect and aggregate data published by the glove on MQTT. I also worked on the gesture classification model, which took some more time. I built a decision tree which analyzed the trends of the incoming data in each window to classify what gesture was being performed. Although I was not able to implement smoothing of the data and more seamless transitions between windows of sensor data, I was able to write tests for the various gestures to ensure that as the models change, we can quickly verify the correctness of the underlying logic.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

Progress is slightly behind schedule on my part because of the decision tree, so I will try to finish this before the middle of next week so I can finish all of next week’s tasks on time.

What deliverables do you hope to complete in the next week?

Next week, I plan to fully complete the code for the decision tree in terms of smoothening out recognition over adjacent windows of data. Moreover, I will establish bounds (min/max) for gesture intensity output so I can map them to the intensity of the input data.

I will also work on establishing a rapid data collection script so we can create a dataset that we can use to analyze future models without doing live testing.

Xuan’s Status Report for 03/18/23

What did you personally accomplish this week on the project? Give files orphotos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

I finished the MQTT portion for the code of the microcontroller. There was a decision made to hold 10 data packets on the glove side before transmission in order to reduce network traffic, as the minimum time interval in reading the IMU data is around 10ms. This might change with further testing though. I also started with the desktop application that we’re using for the configuration and calibration, which would be written using the Qt library.

Currently, it has the option to switch between left and right-hand mode, but the calibration process isn’t written yet as I think the compute module would need to be done before that. I’m also finishing up breadboarding the glove circuit.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I think we’re on track.

What deliverables do you hope to complete in the next week?

I hope to further test using the breadboard circuit and integrate it with the MQTT portion of the compute module to see if there is a need to further optimize the network latency.

As you’ve now established a set of sub-systems necessary to implement your project, what new tools have your team determined will be necessary for you to learn to be able to accomplish these tasks?

I’m not necessarily learning anything new, but probably would need to sharpen up my soldering skills. I also probably would need to sharpen my skills in Qt.

Xuan’s Status Report for 03/11/23

What did you personally accomplish this week on the project? Give files orphotos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

A large portion of the week was spent working on the design report. It actually was easier than I initially expected due to the preparation we did from the entire design iteration process, as we had most of our ideas down when we did the slides.

I also started writing the system code for the microcontroller of the glove module. Specifically, I started writing code that would read sensor data from the various pins and started implementing an MQTT client that would pack and transmit this packet over a network.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I think we’re on track as we adjusted our schedule last week.

What deliverables do you hope to complete in the next week?

I hope to finish the main code of this glove microcontroller and assemble a basic breadboard representation of the glove module. This is to ensure everything will be working before soldering any component onto the glove.

As you’ve now established a set of sub-systems necessary to implement your project, what new tools have your team determined will be necessary for you to learn to be able to accomplish these tasks?

I’m not necessarily learning anything new, but probably would need to sharpen up my soldering skills.

Team Status Report for 03/11/23

What are the most significant risks that could jeopardize the success of the project? How are these risks being managed? What contingency plans are ready?

The most significant risk right now is if the windowed time series analysis turns out to be inaccurate. In case this doesn’t work, we plan to incorporate more rigorous calibration into the system or possibly restructure the gestures so that they are more distinct from each other. Additionally, we could resort to the neural network approach, although this is the less ideal case because it will likely have a performance penalty and may not necessarily have better accuracy.

Were any changes made to the existing design of the system (requirements, block diagram, system spec, etc)? Why was this change necessary, what costs does the change incur, and how will these costs be mitigated going forward?

None since last week.

Provide an updated schedule if changes have occurred

None

Team work adjustments

No teamwork adjustments have been made. We are currently on track to accomplish our tasks, and are currently all just working on them.