Math Problem for you problem solving junkies

glaverty

Member
Join Date
Apr 2002
Location
Parts Unknown
Posts
509
I'm working on a system where a machine grabs a part and moves it in relation to a fixed welder head. The machine consists of two arms that grab the part and move together to move the part past the welder, spinning it and moving it as need.

My problem is that in order to do a vertical move or a horizontal move you have to move two arms and possibly do a rotation to maintain the orientation of the part. A drawing is attached that shows what the arms look like. It's basically a vertical arm rotating about a fixed point and a horizontal arm rotating at the end of the vertical arm.

In order to do a straight vertical move the horizontal arm (lower arm in the drawing) needs to be raised and the vertical arm (upper arm in the drawing) needs to move forward.

So my question is how do I figure out the relation between the two arms, it's definately not linear. I've stared at the thing for a few hours and can't figure it out. I'm sure this is childs play for all you mechanical guys but I'm not getting it.
 
Two skills you will need to "get" it: Trig and vector addition.

I don't have the time to do this for you, but here is a hint. Complete the triangle. Now imagine how the triangle changes as the end of the arm moves through the desired profile. There are two constrained points (the upper pivot and the end defined by the desired position) and two sides fo the triangle are fixed in length. So the angles of the triangle have to change.
 
Last edited:
Maths Problem - Or application problem

Maths we can solve - need to know what type of feedback you will have - eg angle of the Primary arm from a fixed reference - Angle of secondary arm relative to primary arm? Also need Head angle to secondary arm. Do you know about polar ocordinates?

Application: What platform are you on - PLC, Motion controller?
Good motion controllers have axis translation just for your type of setup. Especially robot controllers.
Control Logix v16 is also supposed to cope with your physical layout I just haven't tried it out yet
 
Is this just a timed move? What I mean is if all axis start the move at the same time and end the motion at the same time will this work? If so most good motion controllers can do this and not much math is required on your part.

Where's Peter? This is the second motion control post of the day. He should be all over this.
 
Just use 2 triangles

If first arm angle=A, second angle=B (in relation to the first arm):

X=X1+X2
Y=Y1+Y2

X1=34*cos A
Y1=34*sin A

X2=36*cos C
Y2=36*sin C

C=A+B-Pi

You can do reverse calculations if necessary
 
Last edited:
Like the others have said - triangles and trigonometry. And position cams.
Or get CLX version 16.

In order to do a straight vertical move the horizontal arm (lower arm in the drawing) needs to be raised and the vertical arm (upper arm in the drawing) needs to move forward.
Not that simple. To help visualise the motions required, rename the axes as shoulder, elbow, and wrist. Put your hand out to one side and move it horizontally in a straight line to the other side. Observe the changing angles of your shoulder and elbow. You should see reversals in both.

Is this just a timed move? What I mean is if all axis start the move at the same time and end the motion at the same time will this work?
This will move the end of the arm in an arc.
 
Last edited:
Ok I understand now. I would look at a robot controller. I have done this with a Delta Tau control but it was very tricky. Basicly you will make it into an X Y type move. The Kinamatics is the key. Once you have that setup it will be X Y moves. We started out doing the calculations in Excel then put it into the PMAC but a robot controller will do all the work for you.


Here is a good example from Delta Tau web site
http://www.deltatau.com/common/support/technotes/SCARA%20Robot%20Kinematics.pdf
 
Last edited:
Dang you guys came out of the wood work. I'm not actually doing the programming on this thing a colleague is. I'm just trying to figure out an easy way to figure out a coordinate system. It is a Controllogix with Kinetix 6000 drives. I know he isn't using V16 but was looking into getting it.

I don't have the time to do this for you, but here is a hint. Complete the triangle. Now imagine how the triangle changes as the end of the arm moves through the desired profile. There are two constrained points (the upper pivot and the end defined by the desired position) and two sides fo the triangle are fixed in length. So the angles of the triangle have to change.

I know that the angles are going to be the way to solve this the problem is how to translate that into something the machine can figure out because the feedback from the motors at this time is linear, meaning the motors are connected to gear boxes and ball screws so the motor moves the slide however far you tell it. So we need to know the angles to get this to work.

This is the first motion application I have ever worked on and my math is a little rusty, thanks for the help.
 
One big question in my mind is whether this this setup will always be doing the same move or does it have to be programmable?


If it has to be programmable then you best find a controller capable of 2 axis path generation of this type of setup. It looks like the two wrists of a SCARA robot from the picture.

If the path will always be the same then it should be possible to generate the moves yourself. Do they have to be "highly" coordinated? What I mean is how closly do they have to follow a straight line?

Another gotcha if you are generating trig equations on the fly is that there will generatlly be 2 solutions to the kinematics for each desired position. You have to be very careful that your equations don't flip between the two solutions at any positions in the path.

Do you have the lengths of the arms already or is that to be determined?
 
ndzied1 said:
One big question in my mind is whether this this setup will always be doing the same move or does it have to be programmable?

It'll always be doing the same thing, there are different parts but once the profile for the part is programmed it is always the same.

ndzied1 said:
If the path will always be the same then it should be possible to generate the moves yourself. Do they have to be "highly" coordinated? What I mean is how closly do they have to follow a straight line?

The straighter the better and the speed it moves around the piece needs to be constant.

ndzied1 said:
Do you have the lengths of the arms already or is that to be determined?

It is an existing machine that we are doing a retrofit on.
 
This is much more than childs play

CharlesM said:
Where's Peter? This is the second motion control post of the day. He should be all over this.
I have been traveling. Right now I am in the Shannon airport because the hotel across the street does not have internet access except for one computer and that costs too much to be cruising forums. The air port is not the best place for deep thinking.

I'm sure this is childs play for all you mechanical guys but I'm not getting it.
The DeltaTau article looks good. I would start there. I am not is a postiion to give helpful suggestions right now for something this complex.

The have been a lot of math related questions lately.
 
Peter Nachtwey said:
The DeltaTau article looks good. I would start there.

I hadn't read that until now. Yes, it is good.

Just to give you a jump start, you will need the inverse kinematics. Those equations will give you the joint angles required to put the end of the 2nd arm at a single point. Note that kinematic is only concerned with potitions.

So, first you need to generate a list of points along the line you would like to travel. Normally, these would be equally spaced in the TIME step you need for proper accel and decel of the load. Then at each time step, calculate the required joint angles from the equations and perform the moves of the joints to get there. While the axes are moving, you have to do the calculations for the nest time step so the thing won't stop and start every time step.

I haven't had enough time to try to figure out what to do with the velocity and acceleration for each segment. That's a much bigger one to tackly properly. At that point, I'd look for motion functions that can read a table of points, or a cam table and use that. Then you just need to generate the series of joint angles for each axis and let the controller generate the inbetweens.

Depending on the time frame and the cost of the time of the people involved, it might justify buying a SCARA with it's own controller to do the job. They have all the functions built right in!
 
ndzied1 said:
Then at each time step, calculate the required joint angles from the equations and perform the moves of the joints to get there. While the axes are moving, you have to do the calculations for the nest time step so the thing won't stop and start every time step.
This is where things get interesting. In the rotary knife example there is an equation that describes the motion. It is simple to take the first and second derivative of the motion equations to calculate the velocity and acceleration at each point. The motion controller should have a way of going through these points without stoping. I know ours do.

If there isn't an equation and the points are entered using a teaching pendant then the controller must fit a curve between the points in a similar way that sercos controllers or Rockwell controller have coarse positions and fine positions. I have this all worked out several ways where one can have 4 points p(n-1), p(n), p(n+1) and p(n+2). Since the controller is at p(n) and the current position, velocity and acceleration are known it is easy to compute the position, velocity and acceleration at p(n+1) using the four points. If finer interpolation is required then use 6 points p(n-2) ... p(n+3). This technique is essentially what motion controllers do in interpolate between points in cam tables. Our new controller can do this on the fly. This is a little like laying down train tracks just before the train.

In Greg's case the motion path is known the position, velocity and acceleration of the actuators each point can be precalculated using the inverse kinematics equations. Then it is easy for the motion controller to go from one point to another. The easy way is to use cubic splines. The cubic spline routines will only require an array of positions. The spline routines themselves will calculate the velocity and accelerations between points.
Our older controller works this way. The inverse kinematics is computed before hand on a spread sheet, the resultant points are copy and pasted into our curve tool and downloaded.

There is no need to calculate the velocities and accelerations. The motion tools should do that for you. You should sanity check the velocities and accelerations though.

If the motion path is not predetermined then one can't use cubic splines and calculating the motion profile with just the last four or 6 points is required.
 

Similar Topics

I am stuck on what is likely a misunderstanding of how Omron handles data versus Rockwell. I need to scale an analog input to monitor the...
Replies
8
Views
1,511
I'm not at tech ed this year (:mad:) but a coworker shot me this math problem they are asking as part of the experience. Anyone wanna take a crack...
Replies
14
Views
3,210
RSLogix 5000 V24 1756-L72 Trying to figure out the best way to solve this problem. TCF = e ˄ 1100(1/298 - 1/T) Where T = °C + 273.15 TCF...
Replies
16
Views
3,875
Hi, I need a formula to convert a Speed input in a certain range to a time output range, problem is that the time is from high to low value...
Replies
4
Views
2,090
I was working on a project and ran into a problem that seemed very simple at first, but became quite a challenge to implement in RSLogix 500...
Replies
16
Views
5,573
Back
Top Bottom