XINGHAO HUANG
  • About Me
  • Model world
  • Projects
  • CAD WORKS

3D Printed Robotic Arm MK1 with Gripper
Self-Project
Lake Forest, Dec 2018 

Introduction

Inspired 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.
Picture
Picture
Specification: 2D side view, BOM, and exploded view of the robotic arm (the dead zone is a little bit bigger than real industrial robotic arm.

Building Process

3D Printing:
​All parts were 3D printed in 1.75mm PLA material. The average infill density is around 30% except the gear in the base has 100% infill. Overall, Prusa provided a great precision for the robotic arm. 
Picture
Picture

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. 
​
Picture
Picture
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.  

The base uses a 0.4A stepper motor to rotate the whole arm. Although the torque is about sufficient to perform movement, I definitely need a high-torque motor to allow it carry load, and this would involve some static calculation.
Picture
Picture

​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.
Picture
PCA 9685 Sold by Adafruit
Picture
Raspberry Pi 3 with PCA 9685 and servo [Source from google]
Picture
Arduino Mega 2560 with PCA 9685 and servo [Source from google]

Video

Powered by Create your own unique website with customizable templates.
  • About Me
  • Model world
  • Projects
  • CAD WORKS