I understand that the origin is of UF 0 is the center of the base of the robot at the height of J2 Motor and that the origin of UT 0 is the center of the faceplate. I also understand these things are supposed to be factory set and never move. My question is, how does the robot know that? Where is that data stored? How does that work?
Thank you.
UF 0 and UT 0
-
robcren -
January 16, 2019 at 6:13 PM -
Thread is marked as Resolved.
-
-
The robot does not so much know where its origin is so much as it assumes that its origin is at zero and the DH parameters it has been provided are accurate. The kinematics of a six axis arm require a set of DH parameters which transform the coordinates from the origin to the face plate. Then, the User Frame and the Tool Frame are applied appropriately on top of that.
The DH parameters tell the robot about the links in the kinematic chain from origin to end effector. These include the length of each link, the relative orientation and position of each link, and the current angle of each joint.
From the robot's perspective, in UF 0 and UT 0 (i believe it uses UT 1, just set to all zeros), the applies the current joint angles and the DH parameters it has stored (given when it was initialized by Fanuc) and it believes internally that the center of the faceplate is at a specific point in space. If for some reason, your UT 0 were wrong, it would be like moving in any other incorrect user frame. If the DH parameters are wrong, the arm will move very oddly, and probably will not be able to achieve a straight line motion.
So, the robot does not know where its origin or face plate are. All it has to go on is a numeric description of the links in between that make up a kinematic chain between the origin and the face plate, which it offsets at the beginning by the UF and at the end by the UT. That tells it the relative position of the faceplate to the origin. It is up to the operator/programmer to then keep the arm in good condition such that the relative position of the face plate to the origin does not degrade, and to hold the part it is working on relative to the origin as well.
The robot stores only the lengths and relative positions of its kinematic links and a start and end offset in the form of UF and UT. IT does not know where its origin is supposed to be.
-
Thank you for responding Robo_eng_13.
What are the DH parameters? What does that stand for? Is there a machine data file for each type of robot, or is it unique to each robot? -
DH stands for Denavit–Hartenberg, which are the names of the two individuals who are credited with introducing the standard form of the parameters. They are just one common and mostly standardized way of numerically describing a kinematic chain.
There are 4 DH Parameters.
d - Offset along the previous Z to the common normal. This is basically the distance between the axis of rotation of the previous joint and the axis of rotation of the current joint.
Theta - The angle about the previous z from the old X axis to the new X axis. This is usually treated as the input for forward kinematics and the output for inverse kinematics (taking a point in space and deriving what joint angles are necessary to reach that position)
r - The length of the common normal. This is the length of the previous link in the kinematic chain.
Alpha - The angle about the common normal from the old Z axis to the new Z axis. This is the angular offset between the axes of rotation.
There should be a file which contains these parameters, but i do not know which file, and i do not know if it will be in a human readable form or encoded for the robot only. This should be unique to each specific robot, but at a minimum will be unique per robot model.
-
If you have access to fanuc training on CRC, there is a section on robot math. It goes into detail on how the robot calculates positions. It is a bit snoozy: I warn you, but it is very informative.