DIY Robot Arm 6 Axis (with Stepper Motors)

24,602

203

22

Introduction: DIY Robot Arm 6 Axis (with Stepper Motors)

About: Responsible web development and senior web developer at Titanka! Spa (San Marino - RSM)

After more than a year of studies, prototypes and various failures I managed to build an iron / aluminum robot with 6 degrees of freedom controlled by stepper motors.

The most difficult part was the design because I wanted to achieve 3 fundamental objectives:

  • Low realization cost
  • Easy assembly even with little equipment
  • Good precision when moving

I designed the 3D model with Rhino several times until (in my opinion) a good compromise that meets the 3 requirements.

I'm not an engineer and before this project I didn't have any experience in robotics so a person more experienced than me could find design flaws in what I did but I can still say I'm satisfied with the final result I achieved.

Supplies:

for more info visit my personal blog

Step 1: CAD Design

Before arriving at the final model I designed at least 8 different prototypes with different transmission systems but none could satisfy the 3 requirements described above.


Putting together the mechanical solutions of all the prototypes made (and also accepting some compromises) the final model came out. I didn't count the hours I spent in front of the CAD but I can assure you that they were really many.

One aspect to keep in mind at the design stage is that even a single gram added to the end of the robot's wrist is multiplied at the expense of the torque resistance of the motors at the base and therefore more weight is added and the more the motors must be calculated for endure the effort.

To "help" the engines to withstand the stress I applied gas pistons of 250N and 150N.

I thought of reducing costs by creating the robot with laser-cut iron plates (C40) and aluminum with thicknesses ranging from 2, 3, 5, 10 mm; laser cutting is much cheaper than 3D metal milling.

After designing each individual component, I made the shapes of the pieces in .dxf and sent them to the cutting center. All the rest of the components were made by myself at the lathe.

Step 2: Preparation and Assembly

Finally it's time to get my hands dirty (that's what I do best) ...

The construction phase has taken away many hours of work for the preparation of the pieces, the manual filing of the holes, the joints, the threads and the turning of the hubs. The fact of having designed every single component in order to be able to work with just a few working tools has led me to not have any big surprises or mechanical problems.

The most important thing is not to hurry to finish things but to be scrupulous and follow every single line of the project, improvising at this stage never leads to good results.

Realizing the bearing seats is extremely important because each joint rests on them and even a small play of a few percent could compromise the success of the project.

I found myself having to redo the pins because with the lathe I had removed about 5 cents smaller than the bearing hole and when I tried to mount it the game was monstrously obvious.

The tools I used to prepare all the pieces are:

  • drill press
  • grinder / dremel
  • grindstone
  • manual file
  • lathe
  • English keys

I understand that not everyone can have a lathe at home and in this case it will be necessary to commission the pieces to a specialized center.

I had designed the pieces to be laser cut with the slightly more abundant joints in order to be able to perfect them by hand because the laser, however precise it may be, generates a conical cut and it is essential to consider it.

Working with the file by hand every joint I made in order to generate a very precise coupling between the parts.

Even the holes in the bearing seats I had made smaller and then reamed them by hand with the dremel and a lot (but really a lot) of patience.

All the threads I made by hand on the drill press because the maximum perpendicularity between the instrument and the piece is obtained. After preparing each piece the long awaited moment of truth has arrived, the assembly of the whole robot. I was surprised to find that each piece fit exactly into the other with the right tolerances.

The robot is now all assembled!

Before doing anything else, I preferred to do some movement tests to make sure that the engines have been properly designed, if I find any problems with the engines, especially their tightening torque, I will be forced to redo a good part of the project.

So after also mounting the 6 engines I took the heavy robot to my attic lab to submit it to the first tests.

Step 3: First Motion Tests

After completing the mechanical part of the robot I quickly assembled the electronics and connected only the cables of the 6 motors.
The test results were very positive, the joints move well and in the pre-established angles, I discovered a couple of easily solved problems.

The first problem concerns joint no. 3 which at maximum extension overloaded the belt too much and sometimes caused loss of steps. The solution to this problem has led me to various arguments that we will see in the next step.

The second problem concerns the joint no. 4, the solution of the belt torsion was not too reliable and generated problems. Meanwhile the iron parts of the robot were starting to make small points of rust so with the opportunity to solve the problems I also took the opportunity to paint it.

Step 4: Painting and Reassembling

I don't particularly like the painting phase but in this case I am obliged to do it because I love it even less.

On the iron I put first a primer that serves as a background for the red fluo paint.

Step 5: Bug Fix N.1

After the test results I had to make some changes to improve the accuracy of the robot.
The first modification concerns the joint # 3 in particular when it was in the most unfavorable condition exerted an excessive traction of the belt and consequently the engine was always under stress. The solution was to help by applying a force contrary to the direction of rotation.

I spent whole nights thinking about what could be the best solution without having to do everything again. Initially I thought of applying a large torsion spring but looking online I didn't find anything satisfying so I opted for a gas piston (as I had already designed for joint # 2), but I still had to decide where to place it because I had no space enough.

Giving up a bit on aesthetics, I decided that the best place to place the piston was on the side.

I made the calculations on the necessary power of the piston considering the point where it had to exert the force and then I ordered on ebay a 150 N piston long 340 mm then I designed the new supports to be able to fix it.

Step 6: Bug Fix N.2

The second change concerns joint no. 4 where initially I had planned the transmission with the twisted belt but I realized that the spaces were reduced and the belt did not work as well as hoped.

I decided to completely redo the entire joint by designing the shoulders so as to receive the motor in a parallel direction with respect to them.
With this new modification now the belt works correctly and it is also easier to tension it because I have designed a key system to easily tension the belt.

Step 7: Electronics

The motor control electronics is the same that is used for a classic 3-axis CNC with the difference that there are 3 more drivers and 3 more motors to manage.
All the axes control logic is calculated by the application, the electronics has the sole task of receiving instructions about how many degrees the motors will have to rotate so that the joint does not reach the desired position.

The parts that make up the electronics are:

  • Arduino Mega
  • n. 6 driver DM542T
  • n. 4 Relè
  • n. 1 24V power supply
  • n. 2 Solenoid valves (for the pneumatic clamp)

On Arduino I loaded the sketch that deals with simultaneously managing the movements of the motors such as acceleration, deceleration, speed, steps and maximum limits and is programmed to receive commands to be executed via serial (USB).

Compared to the professional motion controllers that can cost up to several thousand euros, Arduino in its own small way defends itself too obviously too complex operations it is not able to manage such as for example the multithread useful especially when you have to manage multiple engines simultaneously.

Step 8: Software Considerations

Each robot has its own shape and different angles of movement and the kinematics are different for each of them.
At the moment to run the tests I'm using the software of Chris Annin (www.anninrobotics.com) but the math written for his robot doesn't fit perfectly to mine in fact some areas of the work area I can't reach them because the calculations of the corners are not complete.

Annin's software is fine now for experimenting, but I'll have to start thinking about writing my own software that fits 100% with my robot's physics. I've already started doing some tests using Blender and writing the Python part of the motion controller and it seems like a good solution, there are some aspects to develop but this combo (Blender + Ptyhon) is very easy to implement, especially it's easy to plan and simulate movements without having the robot in front of you.

Step 9: Pneumatic Clamp

To be able to take objects to the robot I have equipped it with a pneumatic clamp.

Personally I do not like pliers with servos, they do not give me much confidence on the seal so I thought that a pneumatic pincer specifically adjusting the pressure could satisfy all needs.

With square aluminum profiles I modified the clamp to take both small objects and large objects.

Later, when I find time, I will gather all the information about the project so I can download it.

I hope you enjoyed this instructable.

Robotics Contest

Participated in the
Robotics Contest

Be the First to Share

    Recommendations

    • Microcontroller Contest

      Microcontroller Contest
    • Automation Contest

      Automation Contest
    • Make it Glow Contest

      Make it Glow Contest

    22 Comments

    0
    rashad.newaz
    rashad.newaz

    7 months ago










    Its umbeliveable, you seem to be a born engineer, no matters you have no degree.

    0
    MircoSlepko
    MircoSlepko

    Reply 7 months ago

    I really appreciate your words ...
    Thank you so much

    0
    dominik1226
    dominik1226

    1 year ago

    Hi, what is the range of the robot? How much payload can it handle?

    0
    MircoSlepko
    MircoSlepko

    Reply 1 year ago

    Payload about 3Kg for the range can you see the attached image.
    bye

    robotrange.JPG
    0
    dominik1226
    dominik1226

    Reply 1 year ago

    Thank you very much! Your robot is awesome! one more question: don't you think that arms are too heavy? You used C40 material, isn't it too heavy? do you know how much each arm weight (only cutted metal pieces) ?

    0
    MircoSlepko
    MircoSlepko

    Reply 1 year ago

    I only used the c40 for the base ... the arms are all in aluminum.

    0
    nzpntn
    nzpntn

    1 year ago

    TERRIFIC work!!! Congratulations for skill and huge amount of patience! Indeed I can't imagine how steady your will has been to reach the goal :-)

    1
    3336iraj
    3336iraj

    1 year ago on Step 9

    Can I get the 3d model file please

    0
    3336iraj
    3336iraj

    Question 1 year ago on Step 9

    Pls can I get the 3d model of your design.. I also design a 3 axis robot. But it not advance than yours. So I want to improve my one alos. To correct mechanical errors I have done.. Can u please help me with this

    0
    MnMakerMan
    MnMakerMan

    1 year ago

    Wow, I am blown away. This is awesome, great job!

    0
    MircoSlepko
    MircoSlepko

    Reply 1 year ago

    still no, as soon as I find the time to collect all the material I will write a page on my personal blog.
    regards

    0
    RogerW103
    RogerW103

    Reply 1 year ago

    fantastic - look forward to it - amazing

    0
    metro1
    metro1

    1 year ago

    It's a beauty! congradulations.

    0
    MircoSlepko
    MircoSlepko

    Reply 1 year ago

    Thankyou!

    0
    DroneBot Workshop
    DroneBot Workshop

    1 year ago

    This is absolutely incredible work. I've constructed several robotic arms based upon servo motors and would now like to build an advanced one using stepper motors. I will definitely be referring back to your instructable when I do.

    You've certainly earned my vote!

    0
    MircoSlepko
    MircoSlepko

    Reply 1 year ago

    Thank you so much!

    0
    timothyj9991
    timothyj9991

    1 year ago

    There are some translation errors in the text. The meaning of most of them are pretty obvious, but there are several references to “game” and “cents”. The correct terms are “play” and “percent”. So “game of a few cents” becomes “play of a few percent”.

    0
    MircoSlepko
    MircoSlepko

    Reply 1 year ago

    thanks so much for the suggestions, my english is not very good and I got help from Google translate ;-)
    I see that I make corrections as soon as possible

    0
    badarsworkshop
    badarsworkshop

    1 year ago

    Amazing work. I am planning to build a robotic arm my self and this will serve as a great starting point. I have a smaller budget so I would be sticking to laser cut plywood and 3D printed parts as the building materials. Do you recommend using geared stepper motors as opposed to direct driving it? And why not use gear motors with encoders?