About shifting based on the FRAME coordinate system
I want to shift the conversion value of "POINT a" in the X direction based on the frame coordinate system. Is there an easy way to make it work?
About shifting based on the FRAME coordinate system
I want to shift the conversion value of "POINT a" in the X direction based on the frame coordinate system. Is there an easy way to make it work?
The easiest way is just by using SHIFT command (AS Language Manual).
SHIFT is referenced to XYZ of the current BASE coordinate.
So what a lot of people do is set the BASE to the user frame and therefore the SHIFT will always be relative to the user frame.
So any transformation taught can be shifted relative to the BASE (cannot be used with joint angles #):
- BASE user_frame
- LMOVE SHIFT(a BY X,Y,Z).
- POINT offset_a = SHIFT(a BY X,Y Z).
- LMOVE offset_a
thank you
I tested it and it works fine
You're welcome.
A word of caution though.
Swapping between different BASES in programs, all though completely normal, allowed, common and simply done, it can introduce problems when it comes to teaching positions relative to the BASE.
You need to make sure the correct BASE coordinate has been executed prior to teaching.
I refer to this as:
'Be in the right FRAME of mind when teaching or it could turn your world upside down'.
Yes, I am always wary of that.
Is there any way to know the current coordinate system status on the Kawasaki command or function?
You can't view it by variable name if you're using a variable name as it only stores the transformation values relative to any variable name used.
BASE command in the terminal returns the current transformation values in use and allows to change it.
BASE command in a program, just executes it and applies the transformation values directly.
Aux Function 0506 on the teach pendant also returns the current transformation values in use.
BASE coordinates remain fixed at the last values used unless by manual or programmatical change, even in the event of a power cycle.
So this works well if you wish to programmatically track BASE values.
Not very common for this to be tracked if I'm honest, however if you do want to track BASE changes, or display what current base is selected, you could code into a PC Task to display status lamps on the IFP for BASE changes.
Very crude, but the below video clip shows something in action.
As a rule, I ***NEVER*** change the BASE of a robot. In my particular world, there are just too many problems that doing this could create. Especially if I change the BASE on an application and leave it for some other poor goombah to discover by accident. Most robot users/programmers do not understand transformations, so why leave these boobytraps out there for others to find?
It's been many years, so please forgive if my transformation math is not exactly correct.
If I remember correctly, SHIFT only applies to points in the BASE coordinate system.
So the problem statement is:
GIVEN:
FIND: I desire to move the points pt1, pt2, etc. to my dimensional specification within frame1 (sort of like using SHIFT inside frame1)
SOLUTION:
Like I said, it has been many years and my command might be incorrect. I'd have to find a machine and test this and prove the correct trans math order. But I hope that you are understanding my intention.
You need to be a member in order to leave a comment