More 6-axis kinematics, Yay!

More
08 Jul 2014 01:13 #48504 by AJBecker
I had great success in setting up Linux CNC on my Kondia knee mill and it has been in service now for about 2 (could be 3) years without so much as a hiccup. I'm now getting adventurous (read as stupid) and have decided to build my own 6-axis arm. I am painfully aware of the low success rate of these endeavours (although I do know of a couple that are working out of thousands of attempts) but I am pushing on regardless.

The good news is as follows:

1) I have actually completed the forward and inverse kinematics in python B) so the maths itself is not a problem and I won't be asking about D-H parameters :woohoo:
2) I have a CNC mill handy :P so making parts is easy enough.
3) The mechanical design is 95% done and I have started buying and making parts
4) I have a decent budget to work with - about $1000

The bad news is:

1) I am a mechanical engineer and don't even have a clue where to start with writing the kinematics module. The robot is not a puma configuration (it's actually a bit simpler with some kinematic decoupling) and I would rather write the module from scratch so that I understand it fully.
2) My programming skills are somewhat lacking. I know the basics but I may need to be babied a bit :blush:

I am very keen to get this done as an example to include with the standard distro

Most of the last 3 weeks have been spent with my nose buried in books and papers on serial manipulators and D-H parameters (deceptively simple) so I haven't had a chance to RTFM or download the source code but a broad overview of the process would be greatly appreciated.

Regards

Andrew

Please Log in or Create an account to join the conversation.

More
09 Jul 2014 05:03 #48547 by andypugh

Please Log in or Create an account to join the conversation.

More
15 Jul 2014 00:29 #48769 by AJBecker
Hey Andy

Yeah I have but it was about 2 years ago and that was just out of curiosity rather than with writing my own kins in mind. We've been having some violent wage strikes here in South Africa and on top of that I'm recovering form a bike accident so I haven't been as focussed on this project as I hoped but I will spend some time tonight plugging away at it.

As I understand the process will be:

1) Write a c file (6axisarmkins.c) including the basics as laid out by the guide for the forward and inverse kinematics. This will contain all of the fancy maths required. I will probably bastardise this linuxcnc.org/hardy/hardy/emc2/emc2/media...a5467439e6a8389fd5.c
which is from this thread linuxcnc.org/hardy/hardy/emc2/emc2/index.php/french/forum/10-advanced-configuration/4617-solved-recompiling-genhexkins?limitstart=0
2) Include it in the correct folder (not sure where that is yet)
3) Recompile linuxcnc with this included
4) Endless trouble free use of my new 6 axis arm :P :laugh:

I'm a mechanical engineer so by all means please assume I know nothing here.

Regards

Andrew

Please Log in or Create an account to join the conversation.

More
15 Jul 2014 00:45 #48771 by andypugh

2) Include it in the correct folder (not sure where that is yet)
3) Recompile linuxcnc with this included


If the kinematics code is moderately simple (ie, no #include statements from elsewhere in LinuxCNC then you can compile and install it with the tool formerly known as "comp" (now renamed halcompile, but probably still "comp" in your version of LinuxCNC)

Please Log in or Create an account to join the conversation.

More
15 Jul 2014 02:16 #48776 by AJBecker
The geometry of the arm is as simple as a 6 axis arm can be in that the last 3 joints intersect and so the kinematics for position and tool orientation can be decoupled. As a result the calculation of the first 3 joint angles is very very easy. The calculation of the next 3 angles is slightly more complex in that it involves the solution of the matrix equation [R](3-6) = [R](1-3)T x [R]6 which luckily has a closed form solution with a couple of singularities. This makes the whole set-up much easier than a puma type set-up which most solve using the Jacobian and an iterative solution.

For anyone interested the Oslo University Hospital has some fantastic on-line notes that cover the mathematical derivation of this and the use of D-H parameters for a generic n-link serial manipulator www.uio.no/studier/emner/matnat/ifi/INF3...ervisningsmateriale/

Please Log in or Create an account to join the conversation.

Time to create page: 0.132 seconds
Powered by Kunena Forum