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. Project 3 consisted of the tasks outlined below.
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—skills critical for addressing real-world environmental challenges.
Our focus on timely execution ensured each milestone was met without delay. The codebase was kept clean, modular, and well-documented to support readability and future enhancements. This shared commitment to structured development fostered strong collaboration and accountability across the team.
As the project manager, I led the coordination of weekly progress check-ins, organized task delegation, and maintained open lines of communication. My role centered around keeping the team aligned, ensuring deliverables were met, and making sure each member’s strengths were fully utilized.
Project Milestones:- A virtualized and physical environment of both the Sorting Station and Recycling Station.
- Solid models (*.IPT files) of the Q-bot, including a baseplate for mounting components and a recycling hopper.
- Solid and physical models of various containers for recycling (bottles/cans).
- Solid models of various fasteners that can be used in designing your mechanism.
- An actuator (linear or rotary) for controlling motion of your mechanism for depositing containers.
- Design Demonstration and Verification
- Design Project Report
- Independent Infographics Assignment
Team's Work and Personal Contributions
Time Line: 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 and depositing them into designated containers for processing (Refer to demonstration). This ambitious endeavor was undertaken by dedicated sub-teams specializing in modeling and coding.
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. This involved active participation throughout the coding process, leveraging Python programming language, and collaborating closely with team members to achieve our goals.
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. This role played a crucial part in ensuringsmooth project execution and fostering effective collaboration among team members. By integrating these essential elements seamlessly, we contributed to the overall efficiency and success of the project.
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. Initiating additional collaborative checkpoints would have helped maintain momentum and clarity across both sub-teams.
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, both for team members during development and for anyone revisiting the project later. Clear documentation enables continuity and reduces the learning curve for future contributors.
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. A consistent naming convention not only improves readability but also accelerates the onboarding of new developers.
These reflections highlight the small yet impactful changes that could elevate both team performance and technical quality. Going forward, applying these insights can help future teams build more scalable, maintainable, and collaborative solutions—especially when tackling complex, real-world challenges.