Team Status Report for 04/26/2025

Potential Risks and Risk Management
Upon testing the servo control logic, we noticed erratic behavior in the angle the servo would turn to. However, we narrowed this down to a mechanical issue, which has since been fixed through acquiring a new servo mount. 

Overall Design Changes
No significant design changes were made during this phase of the project. The design of the mount for the servo turning the ramp was changed in light of the mechanical failure we encountered, but the functionality remains the same.  

Schedule
Schedule – Gantt Chart
We are mostly on track. We plan to finish the remainder of integration Monday and work on documentation and testing for the remainder of the week before the demo. 

Progress Update 
Over the past weekend, we tested specific subsystems of our project. We were satisfied with many of our results; however, we also noticed that some hardware limitations constrained us. For example, we assumed when creating these specifications, we would have been able to achieve a control center latency of <400ms. However, upon implementation, we found that sending a command from the Jetson to the Arduino has a minimum latency of 2s. This does not really impact our project because we only require this communication when we have a lot more time to work with. For other parameters like the detection of different items, we are confident that with further tuning, we will be able to increase accuracy. We will repeat the tests we were unable to conduct and include the results in our final report once the system is fully integrated. 

Requirement Target Results
Control center Latency  400ms (max) 2s
Maximum Load Weight 20lb ~20lb 
Detection of different items Metal, Plastic, & Paper with 90% ~77%
System sorting accuracy 90%
Item inference speed < 2 seconds 1.15s
Overall system speed 12 items per minute
Final Cost < $500  $514

Team Status Report for 04/19/2025

Potential Risks and Risk Management
We ran into some issues while using higher conveyor belt speeds; specifically, the power supply we were using had a current limit of 0.25A, which was too low for the motor. However, we were able to acquire one with a greater current limit when supplying higher voltages, and this allowed us to raise our maximum speed threshold. Over the next couple of days, the only risks we anticipate are with respect to timing and synchronization. We believe that with our unit testing, which we will conduct this weekend, we will have a better understanding of the areas we need to further improve in time for the demo. 

Overall Design Changes
We did switch to a model trained from scratch to better meet our design and use-case requirements, but the model architecture is still the same (YOLOv5). Additionally depending on the unit tests and integration process, we may switch from stopping the belt temporarily for sorting the objects to going at a slower motor speed and not halting. Beyond that, we have decided to stick to the generic webcam used in the interim demo rather than use the Oak-D Short Range camera mentioned in our design report due to performance issues (we may revisit using the camera  given enough free time). Regardless, all changes are relatively minor functionally speaking. 


Schedule
Schedule – Gantt Chart

Progress Update 
This week, we made significant progress toward integrating the major hardware and software components of the project. On the mechanical side of things, the ramp was installed into the main system, and we were able to further tension the belt to avoid any rattling as the conveyor belt approached greater speeds. We were also able to transmit input (conveyor belt speed) from the user interface to the Arduino, and have a working live video stream of the inference and classification happening in real-time. We are currently working on testing the integration of the ML model with the servo actuation. With respect to the ML model, we were able to test inference on CUDA on the new Jetson firmware from last week, and despite having multiple compatibility issues, it was eventually resolved. We were also able to get the OakD SR camera working with color on the Jetson; however, since the model’s performance was subpar, we decided to stick to the regular camera while adjusting color settings for more optimal imaging. In addition, we looked at the dataset from the MRS-Yolo waste detection paper and trained a new model from scratch. At the moment, we are observing better object recognition.

Over the weekend, we also plan to conduct unit testing on the different subsystems of the project and fine-tune a lot of parameters for synchronization to make sure the ramp moves in response to the classification in a timely manner.  

Team Status Report for 04/12/2025

Potential Risks and Risk Management


During the interim demo, we noticed that our timing belt was not measured correctly and did not have enough tension to turn the pulleys. This led the belt to slip from the pulleys under loads that were well below our maximum weight requirement. To fix this, John designed a tensioner (shown on the right) made from spare PLA and attached it earlier this week. The tension in the timing belt is sufficient, and the belt runs smoothly now.

We also noticed during our testing that the Jetson was running inference on CPU by default rather than CUDA (GPU acceleration), which likely stalled significantly in comparison. To remain on track with our inference and classification speed metric, we have looked into ways of enabling CUDA and managed to get it working by reflashing our Jetson with a pre-built custom firmware. 

During our interim demo, we noticed that at the moment, the model is not fully capable of recognizing the objects moving on the belt. This is partially due to a noticeable glare in the camera feed. Beyond further fine-tuning the model and adding filters to reduce the glare, we will have our servo default to sorting into the “trash” bin to prevent contaminating the properly recycled batches. 

Overall Design Changes
We had a minor design change when it came to the camera mount for the interim demo. Our initial design mounted the camera on the side of the conveyor belt, while the change has the camera mounted right above the belt. The change itself is subtle, but we believe it will help with integration as we were able to easily restrict the locations of detected objects to the approximate pixels of the belt. Additionally, the new positioning allows us to capture a larger section of the belt in each frame. 

Beyond that, we are removing the detection and sorting of glass from the scope of the project, as far as the MVP is concerned, at least. This was done due to multiple factors and issues we ran into, including safety precautions and the fact that glass data samples were extremely limited in the datasets used.

Schedule
We updated our schedule in time for the interim demo last week. We are now (mostly) in sync with the following schedule. 

Schedule – Gantt Chart

Progress Update    
Since carnival, we’ve made significant progress towards our project. We have a bulk of the mechanical structure built (as depicted in the image below). 

In addition to this, we integrated the motor and servo into the mechanical build, and for our interim demo, we were able to showcase all our subsystems (object detection, servo control logic, and user interface) pre-integration. 

Over the last week, we added finishing touches to the mechanical belt by installing the tensioner to fix the motor belt slipping. Additionally, we reflashed the Jetson and are now able to run CUDA successfully, which should make inference significantly faster. We were also able to establish communication between the Arduino and Jetson using Pyserial. This will be useful for when we configure the servo control logic using classification signals from the ML model. In addition, we were able to install all the dependencies for the web interface (see image below) on the Jetson and can successfully use simple buttons to toggle an LED onboard the Jetson. Over the next week, the goal is to be able to use user input to control the speed of the motor, build the ramp (we have obtained the necessary materials), and successfully use the servo to get it moving, and lastly, integrate the ML classification into the whole mechanism. 

Testing Plan

The use case requirements we defined in our design report are highlighted below. To verify that we meet these requirements, we have a series of tests that we will conduct once the system is fully integrated and functional. The tests are designed such that their results directly verify whether the product’s performance meets the use case and design requirements imposed or not. 

Requirements

System needs to be able to detect, classify, and sort objects in < 5 seconds

  • Perform 10 trials, consistently feeding objects on the belt for a minute at a time. We will be able to verify that we met this benchmark if we are able to place at least 12 objects on the belt per minute. 

The accuracy of sortation mechanism should be > 90%

  • Perform 30 trials with sample materials and record how many of these classifications are accurate.

System runs inference to classify item < 2 seconds 

  • Perform 5 trials for each class (metal, plastic, paper, and waste) and record how long it takes for the system to successfully detect and categorize the items moving on the belt

Control center latency < 400ms

  • We will perform 5 trials for each actuator (servo and DC motor), where a timer will start once an instruction is sent using the Jetson. The measurement will end once the actuator completes the instruction, that being a change in speed for the motor and rotation for the servo. 

Team’s Status Report for 03/29/2025

Potential Risks and Risk Management
Having started on the build, actuators programming, user interface, and model fine-tuning, we cannot determine any major risks at the moment. While building the conveyor belt part, we realized that the rubber sheet purchased was only good for lining up the rollers once, meaning failure to do so successfully would require purchasing another roll. We have, therefore, been careful when applying the roller for the interim demo. Regardless, we have enough money in our budget to purchase another sheet of rubber should the need arise. While testing the model’s inference in real time, we also noticed that the model performed best at a certain elevation and angle with respect to the object being detected, likely due to how the dataset utilized was oriented. This means that other viewings of the objects on the belt would be detrimental to the accuracy of our detection. We, therefore, are optimizing our camera’s position on the overall product such that it provides optimal inference results. 

Overall Design Changes
No major design changes have been made since the last Team Status Report.

Schedule
We are on track with the schedule based on our progress for the interim demo. 

Schedule – Gantt Chart

Progress Update     
Over the week, we made progress on the mechanical side of things by starting to assemble the conveyor belt. We integrated the motor with the motor driver and were able to test out the setup. We aim to have the belt assembled and ready by the interim demo, and a separate working set up of the sorting and object detection mechanism

Conveyor Belt Frame Completed

Team Status Report for 03/22/2025

Potential Risks and Risk Management

We have finished 3D printing the necessary components this week though we anticipate issues that may lead to reprinting. We will be inspecting each printed component this weekend and reprint at the Roboclub facilities on campus as needed. Running out of 3D printing filament is the least of our concerns at the moment as our Amazon purchase bundled four rolls together, whereas we are only using one at the moment. 

Additionally, upon inspecting the Arduino schematic we noticed that we will also have to plug in our DC power source (supplying 12V) to the Arduino’s “Vin” port for power. Initially we feared that the supplied voltage would overwhelm the Arduino but upon closer inspection, it would appear the Arduino is capable of withstanding a maximum of 12V. Regardless, as the voltage we are supplying is the maximum, we are considering powering the Arduino using the data port with the Jetson to circumvent potential pitfalls. The Arduino will still be grounded with the remaining electronics. 

Furthermore, we believe the alligator clips found on campus are incapable of withstanding the higher voltage and current necessary for powering the DC motor driver. Therefore, we will be soldering higher gauge wire onto the purchased male to female wire. 

Overall Design Changes

There have been no major design changes since our last status report. We will likely be adding a breadboard to better manage the wiring of the actuators with the Arduino, though the overall wiring should remain the same. 

Schedule

Currently, there are no major updates to our schedule. However, we have updated it to indicate our progress on ongoing tasks.

Schedule – Gantt Chart

Progress Update

This week, we were able to drive the servo with the Arduino 5V with hardcoded classification signals. 

The goal is to establish communication with all devices (Arduino, Jetson, Motor, Servo) by the end of the coming week. Over the weekend, we plan to integrate the classification signals into this infrastructure to drive the components accordingly in time for the interim demo.

Wiring with an external power supply, which needs to be tested

Additionally we have started work on the mechanical build of the project. We sliced the metal parts in TechSpark and began 3D printing the necessary components. We hope to continue assembly to have a partially functional product in time for the interim demo. 

Conveyor belt 3D printed components

Regarding the model, we have started fine-tuning this week. We are utilizing the training files pre-defined by Ultralytics for YOLOv5 (yet another benefit to adapting a YOLO model), which comes with some neat visualizations as shown below. We are fine-tuning our model to improve its performance with regards to not only accuracy but also reducing false results, which can be more accurately judged via the precision and recall metrics provided by the script. 

Batch predictions made during training based on the defined class numbers (e.g. 1 = Metal)
Batch predictions made during validation, now showing labels by name

Team Status Report for 03/15/2025

Potential Risks and Risk Management
The risks remain the same as they were last week. We were hoping to get started with the conveyor belt build as soon as Monday’s lab, but some of the necessary components did not arrive by then. We will be working over the weekends to compensate. Additionally, we were unable to access some of our project’s remaining components as they were stored in ANSYS Hall prior to break due to ECE Inventory running out of red bins. We received word the building will be re-opened on Monday. 

Overall Design Changes
No major design changes have been made since the last Team Status Report.

Schedule
We are slightly behind schedule when it comes to the mechanical portion of the project, especially due to shipment delays mentioned in Progress Update. We hope to continue building over the weekend (previously labeled as slack time) in addition to beyond the scheduled class time to compensate. 

Schedule – Gantt Chart

Progress Update     
We have obtained the remainder of the project’s mechanical components as of Friday. Due to unfortunate shipping complications that were beyond our control, the belt’s physical infrastructure did not arrive by Monday. We did, however, begin familiarizing ourselves with the project’s actuators (the servo and DC motor) as they arrived on time. Furthermore, we have started 3D printing the necessary belt components using the 3D filament that arrived earlier this week.                                                                                             

Team Status Report for 03/08/2025

Potential Risks and Risk Management
The potential risks remain the same. As we begin the process of building the mechanical belt, we may potentially run into unforeseen circumstances with respect to compatibility during the integration of all our individual mechanical parts. However, we are confident that our risk mitigation strategies of purchasing components that are rated for loads greater than those for our purposes and thorough mechanical planning will not compromise the structural integrity of our project. 

Overall Design Changes
No major design changes have been made since the last Team Status Report.

Schedule
We are slightly behind schedule when it comes to the mechanical portion of the project. To get back on track, we will be building the mechanical belt and sorting mechanism this week. 

Schedule – Gantt Chart

Progress Update
We have obtained the camera, Jetson, and Arduino from the course inventory. Additionally, we ordered the remaining mechanical components necessary for the project’s completion. The items should arrive following Spring break, in time for us to begin both construction and programming the cohesive system. 

Applications of Product Solution

Part A (Written by Erin)
The main premise of our project is a scalable solution to the global issue of recycling. Different regions have different approaches to handling waste categorization; some of these solutions are more labor-intensive or machine-intensive than others. A consensus, however, is that these solutions are expensive and in need of refurbishment. Our solution takes into consideration these factors and proposes a simple approach with a short-range camera and a system equipped with a CV model and robust sorting mechanism. This approach considers global factors that tackle the availability of labor across different regions, technical expertise, and various economic factors that inhibit large-scale automation of categorization processes. Through our thorough selection of widely available and affordable parts, we are able to accommodate these economic factors. Moreover, the simplicity of this 4-fold approach eliminates the requirement of technical expertise for operation, allowing the product to be used in regions where this may not necessarily be available. 

Part B (Written by Mohammed)
In terms of cultural factors, the project may impact laws as well as the culture surrounding recycling. As the project aims to minimize recycling laws relying on public awareness of efficiency, perhaps government bodies and institutions can place less of an emphasis on spreading awareness regarding what is and what is not recyclable waste. This may also cause a culture change in the different waste bins present (e.g., trash, plastic, paper, and metal) as the trash will be re-sorted through the product afterward regardless. The difference for the everyday person will be that they can simply dump their waste and forget about it rather than doubt themselves when attempting to recycle. This cultural impact can spread at both a local and national level depending on the frequency of the product’s implementation. 

Part C (Written by Mohammed)
A large aspect of our project is its environmental impact, of course, as we aim to integrate more efficient recycling. The designed product will separate recyclable material from general waste before further categorizing it. The increase in recycling will be naturally accompanied with a reduction in pollution. Furthermore, an increase in recycling will result in a decrease in the demand for natural resources such as paper and metals, thus conserving natural resources. The project’s impact will also extend towards living creatures and wildlife by removing harmful pollutants in their natural habitats in addition to minimizing habitat destruction in favor of obtaining more raw materials. Additionally, reducing the amount of waste in landfills will contribute to decreasing the amount of greenhouse gases emitted, such as methane, which will, in turn, help combat climate change, offering yet another environmental benefit. 

Team Status Report for 02/22/2025

Potential Risks and Risk Management
Most of our risks remain the same however, after our design review presentation, we realized that our DC motor would be under a certain level of stress, so to mitigate this, we are making sure to purchase one that is rated for purposes that are slightly more involved than ours. We are also ordering multiple to prevent any roadblocks later in the project. 

Overall Design Changes
No significant changes have been made to our design since the recent change to our sorting mechanism. We did make slight changes to the mechanical parts picked while we finalized the parts to be ordered. Our design report will show the final draft.

Schedule
Currently, there are no major updates to our schedule; however, we have updated it to indicate our progress on ongoing tasks. Since we will be placing orders for parts early next week and anticipate a slight lead time for some of our components, our schedule, specifically the portion corresponding to the conveyor belt assembly, will need to be pushed back by half a week. 

Schedule – Gantt Chart

Progress Update

After John finalized the CAD models for the conveyor belt and sorting mechanism, we collectively finalized the parts to be ordered for the conveyor belt, sorting mechanism, and object detection. We hope to submit the appropriate forms at the beginning of the week. 

Team Status Report for 02/15/2025

Potential Risks and Risk Management
The most significant risks we anticipate for this project are the same as last week. In a nutshell, servo load rating, and mechanical failure are the biggest risks. We do have risk management mechanisms in place, and these were hashed out in the previous team status report.  

Overall Design Changes
We made a change to our sorting mechanism. Previously, we chose to have mechanical sweepers that push materials (glass, paper, plastic, metal) into their respective bins. However, after John started designing the conveyor belt, we found this mechanism to be slightly less feasible. Instead, we decided to pivot to using a swivel mechanism wherein all objects fall off the conveyor belt’s end and are then sorted. The sorting is done with a custom ramp that rotates and drops each object off in its appropriate bin. To accommodate the time it takes for the swivel to transport the objects, we will be modifying the object detection sequence. The design changes will be elaborated on in our design report. 

Schedule
Currently, there are no major updates to our schedule, however, we have updated it to indicate our progress on ongoing tasks.

Schedule – Gantt Chart

 Progress Update
As mentioned in Mohammed’s status report, we experimented with a few pre-trained models and settled to use a YOLOv5 implementation. Fine-tuning will be necessary due to the model recognizing trash as recyclable material in addition to miscategorizing other recyclable waste.  John’s status report indicates the substantial completion of a majority of our mechanical design, and it will soon be ready for manual assembly.

Applications of Solution
Part A (Written by Erin)
Our product is tailored to ultimately impact the welfare of society through efficient recycling mechanisms. Our research has shown us that a lot of times, batches of recycled items are contaminated with debris causing these items to no longer be eligible for recycling purposes. Through our solution of automated trash sorting, we’ll be able to reduce the amount of recycling that is rendered ineligible and eventually contribute towards cleaner living environments for all. This result is possible due to less trash ending up in landfills, and subsequently fewer contaminants in the air. Good recycling mechanisms will also aid in maintaining resource availability for future generations. Our product is designed to be efficient, and scalable, and we believe that its incorporation into material recovery facilities will help streamline and improve the recycling conundrum that is ever present in our world. 

Part B (Written by Mohammed)
A particular societal factor our solution targets is ignorance to recycling requirements and regulations. In many places and cultures, what constitutes recyclable waste is not immediately obvious, which leads to people inappropriately categorizing their trash. Our project reduces the reliance on individual awareness by automatically and efficiently sorting the miscategorized trash. Furthermore, we intend on solving the potential challenge of product accessibility by designing an affordable and scalable system that can be accessed by both the public and private sector. That way, our solution can be deployed in not only wealthy governments and sorting facilities but also relatively poorer ones. 

Part C (Written by John)
The economics of our project are kept in check with our requirement of a low cost to prototyping our system. The product will also consist of a lot of off-the-shelf parts so it will be more feasible to connect with suppliers to reasonably assemble our project. The few parts that are custom-made are only custom to lower costs in our prototyping phase, but they can be reasonably fitted with other off-the-shelf parts to ease production. Since this project is meant to be used by larger bodies such as companies and government entities, which are typically more regulated, it will not hold the concerns of wide-spread distribution with other products that would be marketed to individuals and civilian consumers. The use case of the project designates it to be stationary throughout its usage and life cycle, so it would be feasible to distribute and deploy the product to specific facilities in a controlled manner. The product will solely contribute towards the goals of the facilities it is owned by, so there are likely little to no consequences of its use long-term.

Team Status Report for 08/02/2025

Potential Risks and Risk Management

The most significant risks that we anticipate for this project are:

Servo Load Rating
In our project proposal, we indicated that we expect our system to be able to accurately classify 25’’ diameter, 10-pound objects. Given these conditions, we are uncertain if simple servos will be able to handle this load. In addition to this, timing synchronization will be pivotal for our product to work as expected. To address these risks, we have identified possible alternatives.

  • Use a servo rated for higher loads (7kg, 25kg, etc.)
  • Implement an additional stabilizer for servo actuation in the conveyor belt design

Mechanical Failure
The conveyor belt breaks or stalls, thus increasing the latency of the system. To address these issues, we have outlined strict prototyping requirements for our initial stages.

  • Stress Test System Design 
    • Place 6 objects of a maximum of 10 pounds onto the belt
    • Allow the conveyor system to run at 0.68mph (based on proposal) and check functionality

Overall Design Changes
No significant changes were made to our design. This may change as we solidify our system architecture. We have upcoming goals of completing the CAD Model of the conveyor belt by 09/02/2025, and the entire system design architecture by 11/02/2025. 


Schedule
Currently, there are no major updates to our schedule, however, we have updated it to indicate our progress on ongoing tasks.

Schedule – Gantt Chart

 Progress Update
With a spare NVIDIA Jetson Nano, our team was able to boot up the Jetson successfully. We ran into some issues initially with regard to the system getting overloaded every time we plugged in a USB, however, we were able to quickly get past this by using a 5V 3+A power brick. We were also able to connect the Jetson to WiFi using this Spark Fun guide. For our object detection mechanism, we decided that we would be using a YOLO model, and so we decided to test whether the Jetson could successfully launch an existing program.

Our Jetson Nano successfully running a YOLO Model 

In addition to this, we also worked on our parts list, cross-listing items that we needed with the CMU Inventory, and also considering tradeoffs with components that are currently in the inventory vs. other unlisted suppliers.