3D Printed Robotic Arm MK1 with Gripper
Self-Project
Lake Forest, Dec 2018
IntroductionInspired by Enerik Kapllanaj's 3D Printed Robotic Arm and Gripper on GrabCAD community, I made my own 3D printed robotic arm and gripper with five degrees of freedom. All parts were designed in SolidWorks and printed by Prusa i3 MK3 3D printer.
Except the base is driven by a stepper motor, all joints are powered by a pairs of servos (HS-422 and 9g Micro Servos). The servo-pair design eventually showed a lot of problems, which I will discuss them below in the video. All servos were controlled by an Arduino Mega 2560 with two joysticks. It was a very straight-forward control method but lacked precision (actually hard to control). I didn't have enough time and material to make a better solution during the winter break. The purpose of this project is to create a prototype for future robotic control experiment (LabVIEW and Qt). Designing and running this robotic arm also gave me a lot experience and situations that I have never encountered before in mechatronics. |
|
Building Process
Assembly:
The HSS-422 Servos were locked in the in the slot and tightened by screws. Servo arms were also connected with the slot built on the joints. However, this was not a good design because it was very inconvenient to adjust and replace components. Also, directly using plastic servo arms would result in mechanical failure (too much shear stress). A better solution would be a metal servo servo arm. |
The main problem is at the dual-servo joint. I later found out that it was not recommended in industry to use two servos to drive one rigid part. Each servo or motor has its unique mechanical properties. At here, since servos are installed opposite to each other, I have to reverse one of their rotational angles so they can synchronize. However, they never paired perfectly. As one servo rotated but the other didn't, they started "fighting" each other, and this reduced servo's lifespan.
Control
Since there are many servos need be controlled, I used PCA 9685 Servo Driver with Arduino Mega 2560 and later Pi 3 to control the robotic arm. PCA 9685 uses I2C and can directly control 16 channels of servos via PWM signal. It showed that Arduino was the fastest software to implement the control but Raspberry Pi had more functions and flexibility in programming.
Since I had no time to built an GUI, I used two joy sticks and two potentiometers to conduct commands. They are not user friendly and their precision was not very good. I think the next step I will do is to incorporate LabVIEW or Qt to make a control system that allows user to input commands and switch between different modes. |