Society of Robots - Robot Forum

Mechanics and Construction => Mechanics and Construction => Topic started by: kennykck on March 15, 2008, 09:59:47 AM

Title: Forward & inverse kinematic for cylindrical arm
Post by: kennykck on March 15, 2008, 09:59:47 AM
I wonder if my robot arm(3 axes) rotation point is at the "x" point in the picture, how do I develop the forward and inverse kinematic for it? Is it even possible? Normally all the example I found has their rotation point along the same line with the end effector.
Title: Re: Forward & inverse kinematic for cylindrical arm
Post by: Admin on March 20, 2008, 06:22:26 PM
This is a really easy arm to solve for.

First you need to label each joint. J0 is the rotating base joint, T1 is the vertical translating joint, and T2 is the horizontal translating joint.

You have three components to solve for: x,y, z

And you have three degrees of freedom:
J0 -> angle
T1 -> height
T2 -> length

So you need to write an equation that uses all 6 variables.

z is easy, since only one joint controls it:
z=T1

Then to get x and y, use highschool geometry + trig, and the top view of your image to solve for it. For example, if the are is at theta and the length is T2, what is x and y?

Solve this and let me know if you are still having trouble or want me to verify it.
Title: Re: Forward & inverse kinematic for cylindrical arm
Post by: kennykck on March 23, 2008, 02:54:59 AM
I'm trying to derive equation using D-H formula.

Problem is i dont understand the rules to assign the coordinate system for each joint. Like the X(i) must be perpendicular to Z(i-1), and Z(i) cross with Z(i-1). Is the one i draw correct?

Title: Re: Forward & inverse kinematic for cylindrical arm
Post by: Admin on March 23, 2008, 08:15:29 AM
Hmmmm its a little complicated to explain . . .

You can basically define it however you want, but depending on how you define it determines how you fill in the DH matrix . . .

I'm too lazy to explain, so I photocopied the instructions from my manipulation book and attached it.

Let me know if you still have problems, and if so, I'll dig up some examples I did years ago (and don't really remember how to do).