Hi everybody!
I have a problem to register an user frame with the RS030N ,know that in fanuc robots is possible to do by pendant.
I need to register a new frame, relative to a table, oriented 45 degrees with respect to the robot base.
Tried first to register three points moving manually with the teach pendant:
HERE O1, then moved from O1 to X1
HERE X1, then moved from X1 to Y1
HERE Y1
and then use the AS-function
POINT F = FRAME(O1,X1,Y1,O1) to compute the frame F.
Unfortunately, when i tried to test these positions or to do a simple pick and place
(ex. POINT pick = F + TRANS(.....)), this doesn’t work as I expected and had error on some joints motion range.
Also tried the same procedure with four points registration X1,X2,Y1,O1 but had the same bad result.
Any hints? Maybe I failed the procedure to register points?
Attached pic to understand.
TIA
Create User FRAME
-
balrog -
May 9, 2019 at 12:30 PM -
Thread is marked as Resolved.
-
-
Explaining the FRAME command for the Kawasaki in simple terms can be a loooooong message, however:
QuoteTried first to register three points moving manually with the teach pendant:
HERE O1, then moved from O1 to X1
HERE X1, then moved from X1 to Y1
HERE Y1
and then use the AS-function
POINT F = FRAME(O1,X1,Y1,O1) to compute the frame F.
...........When using the FRAME, you need to be aware/remember the left hand rule and also the fact that the controller is using transformation data relative to the current TOOL coordinate and current BASE coordinate.
Assuming you are using TOOL NULL (flange TCP Z+) and BASE NULL (Z+ pointing up), then when you create the FRAME using your method above, will produce a FRAME on the same plane to the BASE (if you have the same Z values for O1, X1, Y1), differing Z values will create a 'twist' to the FRAME plane, BUT more importantly a location with the 'A' element being 180 degrees different.
View location 'f' location data, this may explain the problem.
- This location will be the same XYZ values as O1......But will have differing OAT's.....specifically the 'A' element.
- More than likely is 180 degrees different than the 'A' value of O1.So, if you are going to use a TRANS command, then you would also need to adjust the 'A' element of 180 to invert it.
- Otherwise the TCP will try and move to point F.....not pointing down as you are probably expecting, but from underneath (ie from under the table).
- If the joint limits are exceeded at this position/during the transition to this position, then joint range errors will occur and stop the robot.
- If the joint limits are not exceeded, then the robot could proceed to drive through the table from underneath....giving you.....Enter List/l o1,x1,y1,f to display the location data.........I expect you to see a different 'A' value approx. 180 difference between o1 and f.
If not, then post back the data and we'll take a look over it.
I would have created the frame based on the attached image (circle = what I would of used for y1), just for simplicity.
Hope this helps........................
-
Thank you as usual! I already did the FRAME update but i used TRANS(0,0,0,45,180,0). Now I'm trying to do some positions but errors still occur. Maybe the registered positions are not so accurate because there isn't a "pointer" tool. Could it be a problem?
TIA -
Whether a tool is configured or not, the robot will always use a tool coordinate.
- This will either be a default one, or one that you have defined and allocated.
- If have not allocated a tool, it is possible it is using a NULL value.....however without details it's hard to say.Can you describe your errors and also post your locations that you are having difficulty with?
- Why have you inserted 45 degrees in the 'O' element.
- Include your frame setup locations and also your FRAME location. -
Hi and sorry for late reply, but was busy with other code.
Today i’ve tested again my pick and place task and obtained the following results.
The real frame has been scaled(white plane) and it has been done the 4 points procedure to capture it.
First i tried to adjust the frame as you suggested with trans(0,0,0,0,180,0) but the pick and place was wrong.
Then the frame has been adjusted with trans(0,0,0,45,180,0), this because i think that the table is almost 45 degrees rotated wrt robot’s base. So, the pick and place seems to be good.
Attached data to understand.
TIA -
Your values don't make much sense?.......
Are you sure you are understanding the FRAME command and format correctly as location f definitely is not a calculated value using the frame command due to the fact of the integer values in OAT.How is your frame command being written, what order are putting in the parentheses?
ie POINT f = FRAME(...,...,...,...,) -
I use the frame command in this way:
POINT F = FRAME(x1,x2,y1,o1)
POINT/OAT F = TRANS(0,0,0,0,180,0)
First i got x1, x2,y1,o1 in this order. Then i test these position and create FInviato dal mio iPhone utilizzando Tapatalk
-
So according to your frame command:
x1 - x2 is your X Plane
x1 - y1 is your Y plane
o1 - is where your setting the origin for this FRAMEIs that correct?
-
Yes
Inviato dal mio iPhone utilizzando Tapatalk
-
Attached pic
-
Quote
POINT/OAT F = TRANS(0,0,0,0,180,0)
Where did you get this advice from? -
Read the command on the manual
-
Ok......you don't want to change OAT.......only A
So when you have done your frame as:
Point f = FRAME(x1,x2,y1,o1)Type in:
Point f=f+TRANS(0,0,0,0,180,0)Then try and move to location f........this should goto the correct location.
If this is ok, then:
Point f+test=packing
- This should return the offset between f and your packing location.Then:
LMOVE f+test....................this should then move to packing location.Repeat the above for picking and you should get your result then.
-
Oh damn! Now it’s working right! Thank you!
Inviato dal mio iPhone utilizzando Tapatalk
-
Good man......
Thumbs up for looking at the manual too.......some people don't bother with cross referencing and attempting to try them out..... -