Back to work
2024

McMaster Series: System Design

1P13 Academic Project - Automated Recycling System

Python OOP System Design

Project Narrative

For those unfamiliar with McMaster's 1P13 project-based design, we follow a structured process with defined milestones. Upon completing these milestones, we submit our 'final deliverables' for completion.

Modelling Sub-team

Our sub-team used Autodesk Inventor to create a detailed solid model of a mechanism designed to deposit recyclable containers into designated bins. The mechanism interfaced with both the Q-Bot and a custom-designed hopper, using actuator-driven motion to rotate and release containers efficiently.

Computing Sub-team

The computing sub-team implemented Python code to precisely control the robotic arm. This system safely picked up items and transferred them to the recycling container. Once loaded, the Q-Bot executed a disposal sequence using a custom algorithm to complete the process.

Together, the teams developed an end-to-end workflow that enabled the Q-Bot and robotic arm to sort and dispose of recyclable materials. This project offered hands-on exposure to rapid prototyping, remote sensing, and physical computing.

Project Milestones

  1. A virtualized and physical environment of both the Sorting Station and Recycling Station
  2. Solid models (*.IPT files) of the Q-bot, including a baseplate for mounting components and a recycling hopper
  3. Solid and physical models of various containers for recycling (bottles/cans)
  4. Solid models of various fasteners that can be used in designing your mechanism
  5. An actuator (linear or rotary) for controlling motion of your mechanism for depositing containers
AutoDesk Inventor Final Design

Fig.1. AutoDesk Inventor Final Design

Initial Design Schematic

Fig.2. Initial Design Schematic

Final 3-D Print and Tested Design

Fig.3. Final 3-D Print

Team's Work and Personal Contributions

Timeline: Jan. 12th - March. 6th (2024)

Project 3 marked a significant milestone in our 1P13 journey, focusing on the development of an innovative recycling system to address the challenges faced in waste management. The primary objective was to design and implement an automated sorting system capable of efficiently segregating recyclable materials.

In my role as a member of the Coding sub-team, I played an integral part in developing the program for the sorting mechanism, ensuring its functionality and compatibility with the overall system requirements.

As a member of the Coding sub-team, I contributed to ensuring project success within strict timelines. My primary tasks included coding the control system, testing for functionality, and collaborating with the Modeling sub-team for integration.

Reflection

Looking back, the project's workflow could have been significantly improved through more frequent team calls and collaborative working sessions. Stronger communication between sub-teams would have led to a smoother integration between the modelling and computing components.

I often asked myself, "How can I increase the efficiency of my team?" This question became a guiding thought as I began to notice the need for structured and consistent coordination.

I also observed that occasional confusion on the computing side stemmed from insufficient code documentation. Implementing more comprehensive code comments would have made the system more accessible.

In addition, reducing reliance on hard-coded values would have significantly improved system flexibility. Introducing well-named constants and variables would have made the codebase more adaptable and easier to maintain.