6-axis robotic arm project

684 views
Skip to first unread message

thomas kubic

unread,
Jan 20, 2016, 6:42:23 PM1/20/16
to Machinekit
So I designed a 3d printer with a large print area (400mm x 400mm) mostly so I could do a project like this. Got my feet wet with machinekit through the printer project and took a lot of time to try understanding the basics.

My project goal with this is to learn, after that I would like a robotic arm that can grab and move small payloads such as LEGOs or something.

Recently I found the below opensource project which is exactly what I was dreaming of in terms of building my own low cost 6 axis robotic arm. Gotta love opensource as this saved me months of designing/testing the mechanics. Basically it is a 6 axis stepper driven system. There are encoders on it but I plan to skip that portion due to complexity/cost with machinekit. 

At the moment I am printing things off and receiving the bearings, fasteners, etc... For the electronics I am going to use a 24V source with RAPS128 drivers on a CRAMPS/BBB. I don't foresee any issues here except maybe not enough voltage/current to the nema23 steppers. This however can be fixed later with external drivers.

What I need help with is the kinematics. It looks like linuxcnc has genserkins and genhexkins which if those are functional in machinekit might just do the job????? I am hoping that somebody can get me pointed in the right direction for what type of equations I should be looking for and how to implement them into machinekit. 

Andrew

unread,
Jan 20, 2016, 7:48:21 PM1/20/16
to machi...@googlegroups.com
Hi Thomas,
Very impressive robot arm! I'd love to build something like this... someday. What is the approx. project cost?
There are genserkins and pumakins for robot arms.
I think that pumakins is more friendly, so you probably want to start there.
Genserkins is more flexible, but it's very hard to get working... at least that's my impression from forums and lists.
You can google genserkins, a lot of questions asked but few answers received. I think that genserkins might have some bugs, and to make it work one needs to dig into the source code.
Anyways, start from a trivial 6-axis config and get all axes moving, then switch to pumakins.
To get a notion on robot arm kinematics google Denavit Hartenberg parameters.

Sarah Armstrong

unread,
Jan 21, 2016, 5:36:51 AM1/21/16
to Machinekit
very interesting Link Thomas, 

machinekit has other Kins more suited to robotics , as has been mentioned pumakins which was based for the puma 560 i believe ,and also scarakins  setting up for use on a pc would be straightforward , but you may need a few extra tweaks for the BBB .

Viesturs Lācis

unread,
Jan 21, 2016, 3:16:58 PM1/21/16
to Machinekit


On Thursday, January 21, 2016 at 1:42:23 AM UTC+2, thomas kubic wrote:

What I need help with is the kinematics. It looks like linuxcnc has genserkins and genhexkins which if those are functional in machinekit might just do the job????? I am hoping that somebody can get me pointed in the right direction for what type of equations I should be looking for and how to implement them into machinekit. 

Genhexkins are "generic hexapod kinematics", so definitely are not usable in this case. You can go with genserkins (generic serial kinematics) or (I agree that this to be better choice) pumakins. The name already implies that it covers puma-style robots, which is what you have built. Scara robots are different, so scarakins are not suitable as well.

I would suggest you to try puma sim config. If not, simply load pumakins in your hal file, be careful with specifying correct home positions for each joint and post back, what happened :)

thomas kubic

unread,
Jan 21, 2016, 8:07:16 PM1/21/16
to Machinekit
Thanks for the replies back.

I haven't built this yet, just pointing at somebody else who has done a great deal of work that I intend to use and improve. I intend to have one built within the next month. And hopefully controlled movements within 2 months. Free time with an infant around isn't what it used to be.

Charles Steinkuehler

unread,
Jan 21, 2016, 8:16:12 PM1/21/16
to Machinekit
I understand that dilemma (I have 12 year-old twins)!

Another option coming (hopefully) soon would be to use ROS to control
the robot arm. ROS is more aimed at robotics (vs. CNC manufacturing)
and can work in joint space for planning, obstacle avoidance, visual
tracking, etc. If you're interested in this, monitor the issue
tracker...I've just received a commercial robot arm I'm going to try
to control with ROS + Machinekit, and Bas is working on a custom arm
of his own he plans on controlling the same way. This path isn't
ready for real-world use just yet, but feel free to jump in if you
want to help (and like living on the bleeding edge!).

Let me know how you make out printing the arm, I may print one of my
own if it works out for you. I was going to print and build one of
Andreas' robot arms before I got a loaner "real" arm to play with for
experiments. :)

--
Charles Steinkuehler
cha...@steinkuehler.net

joseph perry

unread,
Jan 21, 2016, 11:38:23 PM1/21/16
to Machinekit
Just following the discussion. Don't mind me!

Claudio Lorini

unread,
Jan 22, 2016, 2:11:52 AM1/22/16
to Machinekit

On Friday, 22 January 2016 02:16:12 UTC+1, Charles Steinkuehler wrote:
...

Another option coming (hopefully) soon would be to use ROS  

+1 on that! 
 

Sarah Armstrong

unread,
Jan 22, 2016, 4:53:52 AM1/22/16
to Machinekit
i'm in the background too on this one !
i'm specificly looking at welding using robots and a ROS / Machinekit mix .

thomas kubic

unread,
Jan 22, 2016, 11:57:51 AM1/22/16
to Machinekit
As for approximate cost. I am thinking $500-$600. Once design is refined I am sure people could do it for $300ish.

thomas kubic

unread,
Feb 10, 2016, 4:04:19 PM2/10/16
to Machinekit
Quick update:
Working on mechanics. Pretty good design mechanically overall. I am pretty happy with it. It has taken some time to wrap my head around this and a couple kilograms of filament to get it to this point. I plan to create a blog or post somewhere tips and tricks on putting it together as I am sure others can learn from.

ROS:
I spent the time to read through the entire list. Looks like development on it is dead as of recent? I had issues trying to follow it as I am not a true programmer and integration seems to need to go in at a pretty low level. From my observation of the issue it sounds like the 'proper' way to do this is to have ROS feed points into the motion layer of machinekit but that is incredibly difficult to do as that layer is a big jumbled mess of code that nobody wants to touch??? And the other method of dropping points directly into the hal layer sounds like it will likely violate acceleration/jerk limitations on motors and result in choppy behavior?

The ROS point seems a bit hard for me to follow and contribute to at this point, for personal satisfaction I am going to try and get this up and running with the pumakins kinematics and then create some custom python M codes that couple an OpenCV vision system to aid in picking up small objects.


Andrew

unread,
Feb 10, 2016, 4:12:13 PM2/10/16
to machi...@googlegroups.com
Wow this looks good!
I see you alredy have CRAMPS board and everything. Just no gripper.
Please make that post, I'm really tempted to build this robot too.
Also I'm particularly interested in OpenCV integration (for complete dummies).

Bas de Bruijn

unread,
Feb 10, 2016, 4:52:13 PM2/10/16
to thomas kubic, Machinekit
Thomas,

On 10 Feb 2016, at 22:04, thomas kubic <tkub...@gmail.com> wrote:

ROS:
I spent the time to read through the entire list. Looks like development on it is dead as of recent? I had issues trying to follow it as I am not a true programmer and integration seems to need to go in at a pretty low level. From my observation of the issue it sounds like the 'proper' way to do this is to have ROS feed points into the motion layer of machinekit but that is incredibly difficult to do as that layer is a big jumbled mess of code that nobody wants to touch??? And the other method of dropping points directly into the hal layer sounds like it will likely violate acceleration/jerk limitations on motors and result in choppy behavior?

I Guess you mean this thread?

What is also important are these threads:

We gave a small demo with a video of Machinekit listening to ROS topic.
Example on use:
Charles' joint_stream component and listener node:

Claudio Lorini

unread,
Feb 11, 2016, 1:06:14 AM2/11/16
to Machinekit
Wow, man! that looks utterly stunning! 

Charles Steinkuehler

unread,
Feb 11, 2016, 9:40:46 AM2/11/16
to machi...@googlegroups.com
On 2/10/2016 3:04 PM, thomas kubic wrote:
> Quick update:
> Working on mechanics. Pretty good design mechanically overall. I am pretty
> happy with it. It has taken some time to wrap my head around this and a
> couple kilograms of filament to get it to this point. I plan to create a
> blog or post somewhere tips and tricks on putting it together as I am sure
> others can learn from.

Please do!

I'm interested in building one of these as well, and there doesn't yet
seem to be much in the way of practical advice for the problems that
will surely be encountered.

> ROS:
> I spent the time to read through the entire list. Looks like development on
> it is dead as of recent? I had issues trying to follow it as I am not a
> true programmer and integration seems to need to go in at a pretty low
> level. From my observation of the issue it sounds like the 'proper' way to
> do this is to have ROS feed points into the motion layer of machinekit but
> that is incredibly difficult to do as that layer is a big jumbled mess of
> code that nobody wants to touch??? And the other method of dropping points
> directly into the hal layer sounds like it will likely violate
> acceleration/jerk limitations on motors and result in choppy behavior?

Development is certainly not dead, but there's probably not enough
available for a practical robot just yet. There are proof-of-concept
examples of tying ROS to Machinekit in various ways, and Bas has
gotten to the point of controlling physical motors with ROS via
Machinekit. At this point, it is the "practical" issues that will
cause problems...things like homing, jogging, and handling ESTOP.

The best place to track and discuss progress on ROS is the issue
tracker, which functions as the "devlopers-list" for Machinekit:

https://github.com/machinekit/machinekit/issues/689

https://github.com/machinekit/machinekit/issues/862

...and others. (note actual github links this time! :)

--
Charles Steinkuehler
cha...@steinkuehler.net
Reply all
Reply to author
Forward
0 new messages