Jump to content
OMRON Forums

MultiAxis nested loop following.


kramrellim

Recommended Posts

  • Replies 10
  • Created
  • Last Reply

Top Posters In This Topic

It is ok to have multiple motors following the same master.

However, the following is working on motor position, not axis position.

If you have a robot with 3 axes, and you want to robot to follow the table, then you can't use position following.

In this case, you need to use kinematics feeding table position to kinematics calculation to achieve that.

Link to comment
Share on other sites

It is ok to have multiple motors following the same master.

However, the following is working on motor position, not axis position.

If you have a robot with 3 axes, and you want to robot to follow the table, then you can't use position following.

In this case, you need to use kinematics feeding table position to kinematics calculation to achieve that.

 

If I have a rotary axis that rotates about the Y axis. Lets call it B axis. And B axis at zero degrees is with the tool pointing in the Z axis pane. The following is Z axis only.

Now if the B axis is at lets say 30 degrees. Both the X and Z need to follow, but of course at different anounts of movement. Can I multiply the master scaling by the SIN and COS to achive the proper following?

Link to comment
Share on other sites

I am not quite sure what you are asking here, but of course you can multiply by scale factors to adjust scaling in your kinematic equations. Attached is an application note that gives an example of tracking a rotary table in kinematics -- I hope it is useful for you.

 

This is a gap sensor to maintain a distance from a metal object. I'm talking about nested loops. I have converted the sensor input to a position that position is the gap distance. I want to use the master following. but at an angle which involves more than one axis.

Link to comment
Share on other sites

it would be better to use kinematics to do this since the relationship involves sin and cos non-linear functions.

You won't be able to use position following in this case since the scale factors Ixx07, Ixx08 can only be integers.

There is not enough resolution to follow the table correctly.

It still only clear how the machine should work.

 

Is the tool tip moving in XZ plan and trying to maintain constant gap between the tool tip and the table?

What is the gap direction?

 

Usually, if the gap is only in one direction, say Z axis, then cascade loop can be implemented to maintain specific gap distance.

Link to comment
Share on other sites

it would be better to use kinematics to do this since the relationship involves sin and cos non-linear functions.

You won't be able to use position following in this case since the scale factors Ixx07, Ixx08 can only be integers.

There is not enough resolution to follow the table correctly.

It still only clear how the machine should work.

 

Is the tool tip moving in XZ plan and trying to maintain constant gap between the tool tip and the table?

What is the gap direction?

 

Usually, if the gap is only in one direction, say Z axis, then cascade loop can be implemented to maintain specific gap distance.

 

If the tool was always in the z axis direction then a cascade loop would be easy, and I have done this before. The tool is not always in the Z direction, it could be in the X, or Y direction , or at some angle in between.

 

Using kinematics may be a problem. Correct me if I'm wrong but with look a head active the kinematics is plotting motor positions well ahead of the current motor positions. The gap sensor is measuring the current gap distance. I guess I could setup the look a head to small number of segments and use the kinematics. I just know how well that would work.

Link to comment
Share on other sites

There are 2 possible solutions for this, but no one has tried them, so you might have to experiment on them and see the result.

1.

You can use PLC0 or PLCC0 to calculate the vector components of this XY vector, and use the components as the cascaded outer loop feedback on the corresponding motors.

Say, your tool tip is at a theda angle, and the XY components might be [cos(theda), sin(theda)], depending on how theda is defined.

If the distance you want to maintain is L, then the movement on X and Y should be [L*cos(theda), L*sin(theda)]

So your height sensor can give you a value related to this L distance, and the 2 components, X and Y distance, can be feedback to cascaded loop on 2 different motors.

Of course, the tuning will be a big challenge to maintain not only the distance, but also the proper ratio between the 2 components.

 

2.

Use kinematics without lookahead.

You will need to calculate the move components according to the sensor reading, and then use that to update the "offset" you will have on each axis.

Similar idea as option 1, but this one will take care of the component ratio correctly.

Link to comment
Share on other sites

There are 2 possible solutions for this, but no one has tried them, so you might have to experiment on them and see the result.

1.

You can use PLC0 or PLCC0 to calculate the vector components of this XY vector, and use the components as the cascaded outer loop feedback on the corresponding motors.

Say, your tool tip is at a theda angle, and the XY components might be [cos(theda), sin(theda)], depending on how theda is defined.

If the distance you want to maintain is L, then the movement on X and Y should be [L*cos(theda), L*sin(theda)]

So your height sensor can give you a value related to this L distance, and the 2 components, X and Y distance, can be feedback to cascaded loop on 2 different motors.

Of course, the tuning will be a big challenge to maintain not only the distance, but also the proper ratio between the 2 components.

 

2.

Use kinematics without lookahead.

You will need to calculate the move components according to the sensor reading, and then use that to update the "offset" you will have on each axis.

Similar idea as option 1, but this one will take care of the component ratio correctly.

 

I think I'm going to try option 1. I think may very well work.

Link to comment
Share on other sites

  • 1 month later...

There are 2 possible solutions for this, but no one has tried them, so you might have to experiment on them and see the result.

1.

You can use PLC0 or PLCC0 to calculate the vector components of this XY vector, and use the components as the cascaded outer loop feedback on the corresponding motors.

Say, your tool tip is at a theda angle, and the XY components might be [cos(theda), sin(theda)], depending on how theda is defined.

If the distance you want to maintain is L, then the movement on X and Y should be [L*cos(theda), L*sin(theda)]

So your height sensor can give you a value related to this L distance, and the 2 components, X and Y distance, can be feedback to cascaded loop on 2 different motors.

Of course, the tuning will be a big challenge to maintain not only the distance, but also the proper ratio between the 2 components.

 

2.

Use kinematics without lookahead.

You will need to calculate the move components according to the sensor reading, and then use that to update the "offset" you will have on each axis.

Similar idea as option 1, but this one will take care of the component ratio correctly.

 

I'm doing this with PLC 0 and is working fine.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...