Making a 6-axis Robot Arm

// October 28th, 2014 // Experiments, arduino

I’m very interested in connecting computers to the real world. The stuff I make for clients mostly ends up on a screen or a projection and a lot of time I’m missing a real physical step in the world. So this is something I really want to explore more.

After making my Drawing Machine I knew I needed some more precision tools if I wanted to make more stuff like that. So this year, I took that step and bought me a cheap Chinese metal mills and rebuild it to a CNC mill.

And with a CNC, I could make everything I ever wanted (That’s what I like to think anyway :) ), So I got the ridiculous idea to try and make an industrial 6-axis robot arm. It would be the perfect project to combine my new found love for making physical things, with the old (but not faded) love for programming.

Bought me some aluminium stock, bearings, motors, etc. and a lots of designing, milling, cutting, tapping, drilling, screwing, printing, soldering and programming later this beauty is the result:

I didn’t document the making process as much as I would like to do, but I was smart enough to shoot some video every once in a while.

So this is sort of the making of video (skip strait to the end to see the finished robot in action )

a little bit more info and pictures:

the Electromechanics

I knew I needed a lot of torque to move the arms. but I still underestimated it a lot. I guess that’s a standard beginners mistake. It took me some redesigns and a lot of frustration before I got that right. I needed to shorten my design and added more gear boxes than I had initially planned.

It would have been nice to have some planetary gearboxes but sadly those things cost a fortune. So I had to do with some relative cheap worm-gearboxes. They work fine, but they have quite a lot of backslash. Which affects the precision of the robot. But at least it has the needed force to move itself.

I used stepper motors so keeping position was not that hard. But I needed something to sync the “home” position between the robot and the computer. So I used inductive sensors on each of the axes to get some sort of start position.


the Hand

I 3D printed the hand, with the intent to use it as a prototype, but it was working fine like that, so I kept it.

For the hand I used a standard robot hand design. Just two servos driving the opening and closing of  the hand. I thought it would be nice to also have some sort of pressure sensors so that the hand knows if it has a hold on something. For that I salvaged the load cells of a cheap kitchen scale, and put those in the hand

Didn’t find much info on how to use the kind of load cells I had (4 cells, 3 wires each) It took me quite a  while to figure out, so for future reference a simple connection schematic :

The Hand is easy to replace and has his own Arduino because I wanted it to be exchangeable with something else.
I have a power-line and a USB connection to the hand, so I can replace it with whatever I need.

The Controller Software

The robot is controlled by an Arduino who manages the steps for the stepper motors and the acceleration. One of the reasons of it being quite slow is that it has a quite slow acceleration. Though the good old second law of Newton and the relative big mass of the robot it is impossible to stop and start the arm movement fast without  mayor shaking and even tilt it over (this happened :) )

I wrote the software for the arm in C++. Just some controls for the axes and some inverse kinematics to control the real world positions, its kind of crappy, but it seems to work fine.

Once I did that It was easy to make the robot do pre-programmed stuff. But that’s kind of boring, so I made a simple program where the robot searches for random placed  cubes and tries to build towers with those.

It uses the camera on the hand take pictures of the floor. After that I did some colour and edge detection to search for cubes and then translated the positions in real world, so the robot knows where to find them.

the source code and design files can be found here:

Arduino part
PC part
Rhino files (it’s a mess)

There is of course much more I could do with it, but I was losing some interested for now. After working a couple of months on this, it’s time for something new.
I learned a lot and this project got me to some unexplored terrain for me and in the meantime my once clean office turned in a complete Fab lab. So I have a lot of possibilities and new ideas for a next project are beginning to take shape. So stay tuned!

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

14 Responses to “Making a 6-axis Robot Arm”

  1. [...] [Kris Temmerman] decided to make a physical demonstration of his knowledge in the form of a six axis robotic arm… the final product is a delicious display of mechanical eye [...]

  2. Jay says:

    Hey, I’ve got a FANUC 420F for exchange if you’re interested, that’s quite a beefy machine. Hit me up if you are!

  3. Gavin Melviolle says:

    Hi Kris,

    I’m well down the same track, as a camera platform. One thing I’ve found hard is to get is worm drive gearboxes, so I’d be very interested in where you got these ones?

    Regards,
    Gavin Melville.

  4. Anonymous says:

    This is really AMAZING and inspiring work ! !

  5. David says:

    Hi, have you used a framework to implement the graphical interface of the controller? If so which one? Impressive stuff btw.

  6. Kris says:

    Hi David,
    yes, I used Cinder -> http://libcinder.org/ with ciCU

  7. Louie G says:

    Hi Kris,

    I’m very interested in finding out about your CNC, can you give some details like tech specs, where you got it, how much it cost etc?

    Thanks

  8. Kris says:

    Hi Louie,
    It’s an optimum BF30 mill, they are sold under a lot of brand names (Grizzly G0704 in the US) .
    search google for “G0704 CNC conversion” and you will find a lot of info :)

  9. Michael says:

    Hello Kris

    I like your awesome project but i tried t download your CAD files and i can’t open them in Solidworks can you help me?

    Thanks

  10. Ofer S. says:

    Very nice ! And may thanks for sharing.

    What motors did you use?

    What was the estimated cost of the project?

    Was the backlash eventually important ?

    Thanks again, Ofer

  11. guohefu says:

    Hi,Kris,I’m very interested in your robot hand design. When robot hand are rotating,I can not find the drive motor, can you tell me where the motor that drive hand rotating?
    Thanks

  12. [...] si robotickou ruku Posted on 20.2.201511.2.2015 Belgičan Kris Temmerman na svém serveru Neuro Production popisuje, jak si pro zjednodušení své práce vyrobil robotickou paži s šesti osami [...]