Blog


Keep up-to-date with our weekly progress.

Start Reading

Project Completion

March 11, 2019

Welcome to our eigth and final blog post.

The week of the symposium is finally here and we are excited to present our project. During this last week we met with our project advisors and received the “All Is Good” approval that our project progress met the criteria for our minimum viable product.

Asides from that we have mainly just been working on continuing testing and fixing up any minor issues we encounter. At this point our main goal is just to do as much testing as possible to guarantee the robustness of our project for the actual symposium.

Additionally we have been working on our poster board and presentation for the actual symposium. Other than that there is no major update to report. Looking back at the initial problem we were trying to solve our completed solution offers a practical viable solution for reducing the risk of shoulder injury for novice workout enthusiasts. In terms of improvements it would help to add a range of exercises. However given the time and resource limitations for this project our accomplishments are quite reasonable. This project has been a great experience for the entire group, as we worked towards a common goal over the span of eight months, and has provided us with a realistic representation of the product development life cycle from the identification of the problem all the way to the final design implementation.

Poster Board for Symposium

Thank you for following our project. Please be sure to come check out our project at the symposium at E7, March 15, 2019, 1-4:30pm. We look forward to seeing you. Spoteria

Project Testing

March 4, 2019

Welcome to our seventh blog post. The symposium is fast approaching, and we are almost ready.

Our product currently meets our minimum viable product with complete integration between the linear actuator and the kinect code, based off of the user height. The exercise detection and recognition also works with reasonable accuracy. Due to time constraints (midterms are taking place) and the significant time required to train a new exercise model, we have currently limited our scope to shoulder press as our only exercise. The exercise form feedback works quite well providing the user with feedback on their form with respect to three different joint comparisons. This feedback is presented in the form of color coded segments for their exercise skeleton, where it transitions between green to yellow to red depending on the quality of the user's exercise form. Our project satisfies the minimum viable product we specified based on our criteria and constraints. Additionally we have our meeting with our supervisors this week, where we will be presenting the progress of our project. At our current status everything should be fine.

The main focus right now is just streamlining, debugging, and testing everything for our project in terms of software design and improving the exercise routine feature mentioned in our previous blog post. The exercise routine goes beyond the scope of our minimum viable product to complete our product. And it fits well with the theme of our project since Spoteria is meant to target novice and weightlifting beginners, providing them with a structured routine to follow will prove to be beneficial in improving their workout experience while allowing them to receive realtime feedback. Additionally we are performing quite a bit of testing right now to make sure that the software side of our product will function robustly when presented at the symposium.

A video of our product with full functionality.

Thanks for reading and stay tuned for updates. We look forward to seeing you at the symposium

Workout Routine Development

February 25, 2019

Welcome to our sixth blog post.

This is the sixth iteration of our blog posts. Our project is well on track for meeting our development targets. The project has really come together and by the initially defined constraints and criteria the current status of our project can be considered to satisfy the requirements for the minimum viable product. The integration between the Kinect software stack and the electrical integration has been completed. Additionally the user interface has been streamlined to thoroughly monitor the users form and provide them with feedback for correction through color signals. At this point we feel that we have satisfied our minimum viable product requirements, and that any further updates will be going beyond the scope of our requirements, but since we have time we are trying to complete a polished solution.

In order to further improve the users workout experience we have decided to develop a workout routine, which guides users through repetitions and a certain number of sets of an exercise. Specifically targeted towards new users, we plan on offering a exercise routine consisting of three sets of five shoulder press repetitions with breaks between sets and form monitoring and feedback during the entire process. At the end the user is presented with the duration of their workout their sets completed, and an overall rating which critiques the quality of their exercise form. However for the time being this is specifically focused on a shoulder press based routine. An additional exercise may be added based on the amount of time available, but we'll have to see since midterms are coming up.

Another update in our project is our utilization of the linear actuator. Through trials we determined that we are unable to track the position of the actuator using just the Arduino. So in order to maintain the scope of our project requiring display adjustment for seated or standing exercises we came up with an alternate solution. The Kinect takes an initial measurement on the users height, and based on our thresholds it judges whether they are standing or seated and either places the display at max height, suitable for standing exercises, or places the display at minimum height suitable for seated exercises, as opposed to adjusting the display height during their exercise as the speed of the actuator was determined to be a major limitation in user experience, and the lack of actuator position monitoring prevents us from being able to use a controller to solve this problem.

User being scored on their form correctness at end of routine

Thanks for reading stay tuned to see our upcoming poster board. And be sure to mark the date for the symposium in your calendars, March 15, 2019.

User Interface Development

February 18, 2019

Hello again, this is our fifth blog post and we have some exciting news to share about updates to our user interface.

This week we have made considerable progress in updating and fortifying our user interface. Our user interface consists of features such as an exercise duration counter, a set and rep counter, an exercise recognition display, as well as an in depth skeleton overlay of the user’s arm movements. This skeletal overlay allows us to continuously track the user’s critical arm joints and output a colour-coded feedback of elbow joint angles. In particular, as the user is doing the shoulder press exercise, the elbow joint angle will depict a gradient between various shades of green, yellow, and red in real-time to notify the user about how well the exercise is being performed. Furthermore, a similar gradient overlay has been developed with respect to the user’s shoulder and forearms to make sure that their arm movements are within a safe operating range as they are performing the exercise. The image below on the left shows a snapshot of the user performing the shoulder press correctly as seen by the green skeletal overlay, whereas the image to the right shows a snapshot of the user performing the shoulder press incorrectly as seen by the red skeletal overlay.

An image depicting user feedback for correct form versus incorrect form

Thanks for reading and stay tuned for updates.

Exercise Recognition + Arduino Integration

February 11, 2019

Welcome to our fourth blog session. There have been some productive updates since the last blog post.

Previously we were having issues with the machine learning and exercise identification, but this problem has been resolved for the most part. The exercise identification incorporation with Unity is currently working quite well with adequate recognition for exercises. At the time the only exercise recognized is shoulder press, all other motions are considered to be a resting pose. Additionally the mechanical design is now completely finished unless some failure occurs, which requires adjustments. Furthermore the electrical integration with the Arduino and the actuator has also been completed with special screw terminals to allow for easy prototyping if any changes are required. Initial testing involving the entire system has also begun with trials for exercise recognition with the sensors mounted to the TV stand as opposed to initial testing on the development laptop. Currently we are on schedule for meeting our target of having developed our minimum viable product by the beginning of March.

The main development this week has been the integration between the embedded software on the Arduino and the software used for processing the Kinect data. After research we were able to find a solution using serial communication, between the primary laptop and the Arduino, which allows for user height data captured by the Kinect to be passed to the Arduino, which is then able to adjust the length of the actuator, which effectively adjusts the height of the display for the user. This is a major development, as this implies the completion of the mechanical and electrical aspects of the projects, all further developments will be focused solely on software with a focus on improving the user interface, the user experience and the responsiveness of our overall solution.

User in resting form as he prepares to perform shoulder press

Thanks for reading. Stay tuned for further updates.

Linear Actuator Characterization

February 4, 2019

Hello again, this is our third blog post. There have been quite a few development for our electrical system, and software aspect as well.

Electrical: There were quite some significant developments for the electrical aspect of the project. The actuator was interfaced with an Arduino Uno and was able to be controlled. The major problem observed was that the speed of actuation was quite slow, taking almost two whole minutes for the maximum 18 inch actuation in one direction. This was mainly due to the lower 2A current we were supplying primarily to safely test the electrical system, but this will be changed to a 3A power supply in the future.

The next step involved integration with the mechanical system, where the functioning actuator was attached to the tv stand. The initial trials have gone well, where the actuator is able to support the weight of the entire system and move to the maximum and minimum actuation heights. Similar to above, the speed was noted to be quite slow, but increasing the current of the power supply to 3A should resolve this issue.

Software: The visual interface has been primarily developed in Unity, with most of the machine learning development taking place using TuriCreate. However, we are facing challenges interfacing between these different platforms, where the functionality of the Kinect sensor becomes limited depending on the configuration. This is the critical piece in our project and the main focus of our attention right now. As of now we are exploring alternative approaches to remedy this problem.

Next Steps: Next steps for the electrical aspect involve interfacing the Arduino code with the user recognition code involving the Kinect, so the actuator can adjust the display to the correct height. Additionally, the actuator needs to be characterized to be able to move the display to a desired height, and to support this we also need to develop the PD controller. For the software aspect, the focus is to integrate the machine learning approach with the user interface, and this is currently our main priority with alternative approaches being explored.

Arduino hooked up with the actuator motor control circuit

Thanks for reading and stay tuned for updates.

Mechanical Frame Assembly

January 28, 2019

Hello, this is our second blog post. There have been some significant updates in terms of the development of the mechanical design.

Mechanical: In terms of the mechanical aspect of this project there have been some major design revisions to improve the project. Firstly, the portion of the frame that holds up the TV was reduced in size. This was to improve the practicality of the interfacing of the actuator such that the minimum height of the TV would be suitable for someone performing seated exercises, and the actuator could adjust the height of the TV with an increase of up to 18 inches in height. Additionally, the reduction in the mounting height of the TV was more suitable for the stability of the overall frame, otherwise having the TV mounted too high posed the risk for causing a moment which could have led to instability.

Additionally, the base component of the mechanical system was reduced in length. The original design had left some extra tolerance, but this was determined to be unnecessary as reducing the length of the base component within a certain threshold did not impact stability. This also allows for easier transportation as the footprint of the mechanical system is reduced.

The third major change to the mechanical design was the addition of two horizontal pieces meant to reinforce the stability during actuation. Initial trials with the actuator showed that the sliding legs for the TV mount had some wobble in them during actuation. This resulted in the TV being non-level. The problem was that the two legs were isolated from one another and needed to be connected to equalize their movements. We determined that this could be remedied by adding some supporting pieces connecting the moving legs, which would increase their stability and resolve the issue of the wobble.

These were the major mechanical developments during the course of this week, and primarily involved increasing the stability of the mechanical design, while streamlining the design. For the time being the mechanical aspect has been completed.

Next Steps: Now that the mechanical design has been completed our focus will be solely towards our electrical aspect and most importantly the software aspect of our project with a focus on implementing the actuator and the exercise recognition algorithms.

The completely assembled mechanical design

That’s all for this week’s blog post, thanks for reading. Stay tuned for further updates.

Website is Live + Winter Break Recap

January 21, 2019

Hello, this is our first blog post. Our website is now live, and we have quite a few updates to share with you since our last presentation in November.

But before that for those of you new to our project we’ll just break down what Spoteria is and what we aim to accomplish. Spoteria is designed to be a smart mirror display meant to improve your workouts. It is specifically targeted towards shoulders, as they are one of the common sources of injury during workouts for novices. Issues such as shoulder impingement (our main focus), and others can lead to limited range of movement for the shoulders and by extension for the whole arm. Given that shoulder exercises are a popular workout choice, we decided to focus on shoulder exercises only for the scope of this project. Following an iterative design procedure we explored different design approaches to combat this problem, such as wearable sensors and smart workout machines. However based on our project criteria and constraints we ultimately decided on a design involving a smart mirror display coupled with a Kinect sensor to track user exercise form, while providing them with real time visual feedback in the form of a smart mirror display.

Project development has been well under way and there have been quite a few developments for Spoteria over the course of the winter break. The developments can be broken down by their respective components.

Mechanical: In terms of mechanical development preliminary design has been completed. From the design in Solidworks, to the mechanical analysis performed in ANSYS, the first physical mechanical prototype has been assembled. This is the first design prototype for the mechanical aspect of the project. For those not familiar the mechanical aspect of this project presents a TV stand type assembly which will be used to support the smart display and will work with the actuator to adjust the display height to match the user’s workout height. For next steps the mechanical assembly needs to be integrated with the linear actuator, for more details refer to the electrical section below.

Software: For software development the proof of concept is complete. We are able to capture users through the Kinect sensor and able to identify major joints. Furthermore in the current implementation we have designed an algorithm to be able to track the user’s joint angles, which can then be used to critique their exercise form. However there is still quite a bit of software work required for the next steps in the project as the machine learning models for exercise identification need to be developed and trained so that the exercise performed by the user can be identified, a necessary step for form critiquing.

Electrical: For electrical, all of the required components have been acquired, including the linear actuator. There is still quite a bit of development required on this front to test the actuator with the mechanical system, and ensure that it is functional with the TV mounted. The actuator needs to be interfaced with the user recognition software component, to be accomplished through an Arduino for the hardware side of things, so that the actuator can adjust the display height according to the height of the user. Additionally, we still need to finalize the circuit schematic for the actuator control circuit. Furthermore, CSA approval will be required for the electrical component as the actuator relies on a 12 V, 3A power supply, where the required current can be fatal if not handled correctly.

Next Steps: Some of the required next steps have already been mentioned above, but looking at our immediate agenda the two main priorities would be finalizing the electric system and integrating it with the mechanical prototype. And secondly, developing the models for exercise identification. This can be considered a critical piece of our design because if this fails there is no metric to critique exercise form if the system can’t identify what exercise the user is performing. These two tasks are our immediate priorities, which we aim to accomplish by the end of January. Given that these are accomplished our project would essentially fulfill its minimal level of viable operation.

Software development with Unity and Kinect

That’s all for this week’s blog post. If you are interested in our project and would like more info please contact us, refer to the contact section of the website, we welcome any sponsorship. Stay tuned for further updates.

Contact Us


Check us out on March 15, 1:00-4:30 at E7.