# Kinematics... again:/

29 Apr 2017 06:40 #92318 by Boogie
Kinematics... again:/ was created by Boogie
Hi folks!

have you seen detailed tutorials/instructions how to make non trivial kinematic module for machine like robot manipulator and how to compile it to run under linuxcnc? I like linuxcnc and i use it for my bench pcb plotter. It's standard trivkins machine and i'd like to make one that behave like the one in the video:

it is sooo hard to figure out how to bite this subject if you are not programist/mathematician and not english speaking guy (at least not good enough to understand complex descriptions that usually assume that the reader have Ph. D in programming or robotics:))

Let's make some tutorial:)

29 Apr 2017 09:34 #92325 by andypugh
Replied by andypugh on topic Kinematics... again:/
It is impossible to do kinematics without mathematics, unfortunately. Though you can do it with school-level geometry.
There is a simple 2D example here:
linuxcnc.org/docs/2.7/html/motion/kinematics.html

There is a clever LinuxCNC kinematics model called "genserkins" which uses very clever maths (matrix manipulation) and Denavit Hartenberg parameters. Luckily you don't need to understand the maths to work out the parameters:

If you do have ambitions towards a robotics PhD, then there is this
linuxcnc.org/docs/devel/html/motion/5-axis-kinematics.html
But it was written by a professor of engineering, and as such fits your description exactly.

01 May 2017 09:19 #92417 by Boogie
Replied by Boogie on topic Kinematics... again:/
Thank you Andy for reply. I'm afraid i'm too old to think about PhD in robotics:) I'll look at genserkins as you suggest. I did also read about D-H parameters. Clever though i'll have to read more to understand it enough.
Please tell me If i understand you right: i can create my own matrices according to D-H rules for both forward and reverse transformations and put them into genserkins and genserkins will do what? Then i will have to compile new kinematics module?
Linuxcnc reference i found here (point 7):

linuxcnc.org/docs/devel/html/motion/5-ax...inematics_components

says:
"The kinematics modules provided by LinuxCNC are typically written in the C-language. Since a standard structure is used, creation of a custom kinematics module is facilitated by copying an existing source file to a user file with a new name, modifying it, and then installing."
So do i have to write my own kinematics in C language or genserkins will create it based on D-H params i develop?
Have a good day.

01 May 2017 10:28 #92421 by andypugh
Replied by andypugh on topic Kinematics... again:/
No, if you use genserkins you just need to set the DH parameters in the HAL file. You don't need to see any matrices, and you don't need to compile anything.

Look at this example HAL file:
github.com/LinuxCNC/linuxcnc/blob/master...uma560_sim_6.hal#L37

However, genserkins can't be used for the robot in the video, because it only handles angular joints, and that robot had a sliding base joint.

02 May 2017 05:57 #92493 by Boogie
Replied by Boogie on topic Kinematics... again:/
that sliding joint... i thought that it would be easier because this joint coincide with X axis so it is trivial: joint 0 = X axis.

02 May 2017 08:33 #92495 by andypugh
Replied by andypugh on topic Kinematics... again:/
It is trivial if you are writing the kinematics from scratch, but not something that (as far as I know) genserkins can handle.

It might be that sliding joints are represented by special numbers in DH parameters. I don't know.

02 May 2017 08:53 #92497 by andypugh
Replied by andypugh on topic Kinematics... again:/
Here is a discussion about the kinematics of the actual machine in your first post:
sourceforge.net/p/emc/mailman/emc-users/...ail.com/#msg26845536

Missing from that conversation are several off-list messages that Viesturs and I exchanged. He did get quite a long way down the line of making a version of genserkins that handles sliding joints, I have attached the modified genserkins.c and gensekins.h files that we came up with, but be aware that they don't necessarily work

In the end Viesturs used a modified version of scarakins, called robotkins.c for that welding robot, I have also attached that.
##### Attachments:

04 May 2017 21:06 #92675 by Boogie
Replied by Boogie on topic Kinematics... again:/
How can i thank you for this? Now i'm reading it and trying to understand what is going on there. It will take same time and i'm sure more questions will arise. C-language file have to be compiled, right? And compillation process will create proper folders and files automatically, right??

04 May 2017 22:08 #92677 by andypugh
Replied by andypugh on topic Kinematics... again:/
You should be able to compile and install the robotkins.c file using the LinuxCNC Halcompile utility.

linuxcnc.org/docs/2.7/html/hal/comp.html

sudo halcompile --install robotkins.c

06 May 2017 08:09 #92731 by Boogie
Replied by Boogie on topic Kinematics... again:/