Robotic Arms

Shay Pema
5 min readJan 6, 2021

--

The wave of the future.

What can they do?

Everything. And more.

It is as simple as that. They do everything humans can but also have the ability to perform tasks that humans can’t such as lifting and transporting heavy materials, packaging dangerous chemicals, and mining without harming humans.

6-Axis

Recently I built a 6-axis robotic arm. 6-axis robotic arms have six degrees of freedom or six different ways that it can move. 6-axis robotic arms are also kinematically redundant meaning that they can reach the same spot at the same angle in more than one way.

Human arms also have six degrees of freedom.

If you look at this diagram you can see how the 6-axis robotic arm and human arm are similar.

This means that these types of robotic arms can perform any tasks that humans can, allowing them to take over all jobs humans perform.

This prevents deaths and injuries in dangerous jobs such as welding and logging jobs.

Can they do even more?

Robotic arms can even accomplish things that humans can’t like lifting heavy materials and transporting them.

Look at this super awesome FANUC M-2000iA industrial robot! It can lift to 1.7 tons. No human has the strength to lift this much weight.

We also have the Semi-Automated Mason robot arm which can lay bricks over five hundred percent faster than the average human can. That is so much faster and more efficient.

Parts

There are five main parts to a robotic arm.

We have the controller, sensors, arm, end effector, and drive.

Controller: This part basically acts as the brain of the robotic arm and instructs it how to operate through code.

Sensors: The sensors include the vision system and microphone. These allow it to see and hear its surroundings.

Arm: The arm is the actual structure and supports the claw.

End Effector: The end effector is attached to the end of the arm and is normally a claw.

Drive: Lastly, we have the drive. This is a motor and powers the robot.

Back To My Project

Now let’s get back to the project I built. Like I said earlier I built a 6-axis robotic arm.

I coded it using Arduino since it is one of the simpler codes and I’m very new to coding.

Now let’s look at how each line of code works. Reference the code shown below.

The Servo myservo1; function tells us how many servos we will be working with and the name for each one.

Then we get to the line int pos = 0. This basically is the starting position of the servo.

Inside of the void setup is the code that you only want to run once. I have myservo1.attach(9), myservo2.attach(11), and myservo3.attach(13) which means that each of those servos is either attached to pin 9, 11, or 13 on the circuit board.

Inside of the void loop is all of the code that you want to be repeated. For example, let’s look at the code:

for (pos = 0; pos <= 180; pos += 1) ; {

myservo2.write(pos);

delay(15);

This (for (pos = 0; pos <= 180; pos += 1) ; {) tells us that for the servos using pos = 0, move to position 180 going up 1 degree. Myservo2.write(pos); tells the servo to go to pos which is 0. Delay(15); means to wait 15 milliseconds for the servo to reach 0 or pos.

Servos

When I built my project I used two types of servos. I had four MG996R servos that provide a stall torque of 9.4kg/cm @ 4.8V and 12kg/cm @ 6V, and two 5521MG servos that have a stall torque of 17,25Kg/cm @ 4.8V and 20.32 Kg/cm @ 6V.

Stall torque is the motor’s continuous torque at 0 speed and is usually measured in ounces per inch or kilograms per centimeter.

These servos have a low level of stall torque which also makes them very weak. This weakness contributes to the fact that the servos can’t support the upper arm from falling.

Problems

I encountered many problems when building/coding my robotic arm.

When I was assembling my arm, many screws were too large which interfered in the alignment of the parts of the joints. This meant that I had to leave some screws loose, otherwise the parts and screws would be incompatible with each other.

Leaving screws loose left certain areas of the robotic arm very weak. This includes the base and the servo that controls the up and down movement.

When coding these weak areas, they would collapse instead of performing the task I programmed them to do.

These problems occurred when I was assembling the robotic arm as the weak arm kept falling and wouldn’t stay upright. I overcame this problem by putting some more weight at the base.

But for coding, there was a major problem. I didn't know how to code. So naturally, I had to learn on my own. This might explain why my code above looks odd.

Also, some wires were connected to the wrong ports. For example, I had my ground and power port connected to the wrong side of the Arduino board. These two parts are essential and without them, many problems will occur. But for me, the servos would only travel in one direction instead of back and forth.

This confused me for a long time but I finally was able to figure out how to solve my problem!

Takeaways

  1. 6-axis robotic arms have the same number of degrees of freedom as human arms which is 6.
  2. Robotic arms perform many task humans can do and more.
  3. They have five main parts: the controller, sensors, arm, end effector, and drive.
  4. Make sure your servos have a strong stall torque.
  5. Check that your wires are connected to the correct ports on the Arduino board and robotic arm.

Shay Pema is an innovator at The Knowledge Society and is deeply interested in technology such as brain-computer interfaces and robotics. Feel free to reach out to him via LinkedIn.

--

--