Published: May 20, 2024
Robot Design Intent: Move a 50 mm, 20-sided die from a minimum of (0, 0, 0) to (300, 150, 75) mm without manipulating the start/end locations
Some of the features of the design are highlighted below:
3D-printed design, comprised of 6 mechanical subassemblies
XY Movement: Two independently rotating arms, arm 1 with a 320-degree range of motion and arm 2 with a 200-degree range of motion
Z Movement: Rack-and-pinion setup with an SG90-actuated gripper acting as an end effector
Controlled by an STM32 Nucleo with 2 custom protoboard shields, an off-the-shelf motor driver and a custom protoboard for the HMI controller
The challenge was to design, build, test and verify a powered mechanism that moved a 50 mm, solid PLA, 20-sided die by a minimum of (300, 150, 75) mm in the respective axes (X, Y, Z). A number of design constraints were imposed by the teaching team to limit the solution space, as detailed below:
Use a power supply to energize the system
Not manipulate the start or end locations to assist with pickup/placement
Not involve flying, launching, throwing, or direct user interaction with the object
Cost less than $300 (CAD)
Must be completed within a 3 month span
On top of the constraints, each team was required to choose 2 additional design objectives that the design would have to meet. We chose repeatability and accuracy.
This project was completed in a group of 4 for the ME 380 course. The following list details the group members and their respective roles:
Logan Hartford: Team Lead (project & technical), Firmware lead, responsible for the developing the firmware and controls of the robot.
Varrun Vijayanathan (myself): Mechanical lead, responsible for overall mechanical design of the system from concept generation -> CAD Layout -> Assembly.
Ethan Dau: Contributed to the mechanical design (concept generation, CAD) and led the fabrication and assembly tasks of the system. Helped out with project management tasks as well.
Eric Gharghouri: Electrical lead, responsible for electrical system architecture and electrical fabrication.
As my role was mechanical lead, this webpage mainly highlights the design of the mechanical system. For a full technical details, please refer to the design report.
Based on the functional requirements (FR), non-functional requirements (NFR) and the constraints, we brainstormed a number of concepts for the powered mechanical system. Through continuous discussions, we landed on 4 design concepts to evaluate through a design matrix:
Delta Robot
SCARA Robot
Self-Driving Truck
Cartesian Robot
Conveyance System
The team ultimately chose the SCARA Robot as the design concept for the powered mechanical system. This concept was chosen mainly for the learning opportunities that the design would present, while balancing simplicity to ensure the project is achievable in 3 months. The 4 other design concepts considered were deemed to be too boring. Our goal with this project was to take a path that would allow for the maximum amount of learning that we can take into our future careers.
The following images showcase the refined conceptual sketches for the revolute joint and gripper mechanism, respectively. Further details of the conceptual sketches can be found in the report embedded below.
The following images depict the system drawing of the final iteration of the SCARA robot. There are a total of 6 assemblies that comprise the entire mechanical system, each appropriately labelled below. This section presents the high-level details of the final design of the SCARA robot. Further technical details can be found in the report embedded below.
The following section details the base structure of SCARA robot. Images of the final base design are shown below. It features a 2-piece circular design, with removable access panels on the lower half enabling access to the central storage area. The design of the base structure was optimized to provide a balance of structural support and storage space, to house the Nucleo, protoboards and other electrical equipment. Dovetail geometry is used to secure the access panels to the lower half of the base. The upper half of the base houses the revolute joint #1 and the NEMA 17 stepper motor, used to allow rotation of arm 1, and is mounted to the lower half through a flange geometry. The entire base structure is designed for 3D-printing, with appropriate chamfers applied throughout to minimize support material. Throughout the base design, heat set threaded inserts were utilized to eliminate 3D-printed threads and provide reliable fastening options.
Final Base Design
Lower Half
Upper Half
The following section details the revolute joint design used for actuation of arm 1 & 2. Such joint allows for 1 DOF between a kinematic pair, enabling pure rotation along a common axis for the two (2) components and preventing translation. The joint design features 2 thrust washers, allowing for pure rotation of arm 1 when the NEMA 17 stepper motor (housed in the base) is spun. The radial ball bearing is used to provide axial support and reduce friction. Arm 1 Joint and Motor Coupler are directly bolted together, and thus spun at a 1:1 speed ratio. A similar design is used for rotation of arm 2, albeit with smaller bearing sizes, and can be seen in the assembly section view above.
The following section details the final design of Arm 1 & 2. A majority of the mechanical design for both arms were completed by Ethan, thus this section only provides high-level details of each sub-assembly. Further details of design iterations for these two assemblies are discussed in the report. The below images present the assembly drawings of Arm 1 & 2, respectively, with a BOM added for each.
To better justify the lengths of both Arm 1 & 2, an OKPI (Optimal Kinematic Performance Index) method was used as presented in an article titled A novel tool to optimize the performance of SCARA robots used in pick and place operations. The method intends to optimize link lengths by reducing the sum of angular displacements required to move from the start to end point. The resulting link lengths for Arm 1 & 2 based on the method are a1 = 85 [mm] and a2 = 190 [mm], respectively. Further details of this method and its application to our SCARA robot is detailed in Appendix A of the embedded report below.
Arm 1 houses a NEMA 14 stepper motor that is used to actuate rotation of arm 2 through the 2nd revolute joint (Component 12 in Arm1_ASM Drawing below). The 2nd revolute joint (Component 12) also features a tab to engage limit switches on the top of Arm 1, which are used for homing of the robot and physical stop(s) for Arm 2.
Arm 2 houses the rack-and-pinion assembly for the robot, allowing for Z-axis actuation of the die through the gripper (not pictured in drawing). The rack-and-pinion assembly is driven by a 28BYJ-48 stepper motor. Other design highlights of Arm 2 are the status LEDs on the top of the arm to indicate status of the robot during operation.
The gripper end-effector acts as the main interface between the 20-sided die and the SCARA robot, responsible for the pick-up and drop-off of the die when it had reached its intended locations. The gripper features two (2) mirrored arms, each with a 18-tooth keyed spur gear at the top of the arms (right image). This final gripper design follows the design concept presented earlier, where one arm is the drive arm and when rotated by a motor, the other arm is driven in the opposing direction through the interlocked 18-tooth spur gears. The drive arm is powered by an SG90 servo motor with a custom 2.5:1 gearbox (center image). A servo motor minimized the weight of the rack-and-pinion assembly actuated by Arm 2 (minimizing cantilever effect) but a gearbox was required to provide sufficient torque output to actuate the arms reliability. The gripper interfaces with the die through gripper pads (light blue) that feature tabs to ensure the die is centered during movement.
The SCARA robot supports two operating modes: automatic and manual. In automatic mode, a pre-programmed sequence moves the die from its start position to the end platform. Manual mode provides full jog control through a custom HMI enclosure I designed, integrating a two-axis joystick, four push buttons, a linear potentiometer, two status LEDs, and a hardware E-stop. The joystick commands X–Y motion; the potentiometer maps to Z position; pressing the joystick toggles the gripper open/close. The E-stop physically cuts power to the robot for a fail-safe shutdown.
The images to the right are a collection of those taken over the build and assembly process of the SCARA robot. All components (except the bearings, screws, washers) were 3D-printed using a Prusa i3 MK3. The material of choice was eSUN PLA+ due to its ease of printability, dimensional stability and enhanced material stiffness when compared to ABS or PETG.
Through build iterations of the SCARA robot, a number of issues were observed and corrected for the final design:
Mechanical sag of the Arm 2 (Rectified through larger bearing in Arm 1 joint in final design shown above)
Mechanical play of Rack-and-Pinion (Rectified through tighter tolerances of related components, lightened rack component)
Temperature-induced deformation of Motor plates (Rectified through increased infill percentages for components that directly interact with the motor)
The final build of the robot was completed ahead of the symposium, which took place at the start of April 2024. Below are 2 videos that depict the accuracy validation and repeatability validation, respectively. Overall, this project was a lot of work over a 3-month period that we had to manage while undertaking one of the hardest semesters of our undergrad, but we are all proud of the effort we put into this project. We successfully completed the design challenge and managed to squeeze in some additional features, but more importantly, learnt a lot from the design process of the robot and from each other.
For full technical details about the design justifications and construction of this SCARA robot, please have a read of the following report prepared by the team: