3.5 Robot based automatic scanning
3.5.2 Robot kinematics
The movement path of the robot has been decided after the robot programming process. That means the desired coordinates of end effectors during the movement is already stored in the robot controller, the next step is to control the robot to fulfill the movement. The most important issue is the transformation of the coordinates of the end effectors from one coordinate system to another coordinate system. For example, to move the robot to a desired position with coordinates in Cartesian coordinate system, the task will be accomplished by moving the joints and links which forms a kinematic chain. But how much should the joints values be set if a desired position in the space is to be reached and where are the end-effectors located when joints of the kinematic chain has moved by a certain angle? Both questions are associated with the robot kinematics solving the transformation of the coordinates among different coordinates system. These two issues are essential for the robot control.
Robot kinematics consists of forward kinematics and inverse kinematics. Forward kinematics can be used to calculate the corresponding end-effectors position for the given joint positions while the inverse kinematics can calculate the values of the corresponding joint variables for the given actual end-effectors pose. Both kinematics processes are very complex. Inverse kinematics is usually much more complex than the forwards kinematics. This can be concluded from the application of BGT µ-KRoS316
robot at the IZFP by Karnauhov [Karn2009] for the investigation of residual stresses in thin ferromagnetic film.
For the robot application by Karnauhov, a mathematical formulation given by John Craig [Crai2004, Karn2009] is applied for the transformations taking place in the kinematic chains of the manipulator for the forward kinematics of the µ-KRoS316 Robot.
Actions of each joint of the BGT µ-KRoS316 robot are described by a single real number (here the angle of rotation since the robot has only one kind of joint, the revolutionary joint. This means that each joint has only one degree-of-freedom.
A Coordinate frame is attached rigidly to each link in order to perform the kinematic analysis. The matrix which expresses the position and orientation of each coordinate frame is obtained from the basic translation and rotation transformations based on the fact that both translation and orientation transformation of the robot movement can be represented by a 4x4 homogeneous coordinate transformation matrix. The resulting matrix representing the position and orientation of the end-effectors is obtained by multiplication of the homogeneous transformation matrix obtained from the basic translation and rotation transformation.
6
0 1 2 3 4 5 6
T =A ×A ×A ×A ×A ×A (3. 1)
T06 is the resulting matrix representing the end effectors position and orientation. A , i i =1c 6 are the homogeneous transformation matrix that expresses the position and orientation of the coordinate frame O X Y Z with respect to the framei i i i O X Y Zi 1− i 1− i 1− i 1− . The resulting matrix is very complex. 196 instances of addition/ subtraction operations and 256 instances of multiplication operations are required for a single coordinate calculation using the matrix equations approach according to the result stated in the thesis.
For the inverse kinematics of the µ-KRoS316 Robot, solution obtained from the forward kinematics.
6
0 1 2 3 4 5 6
H=T ( ,θ θ θ θ θ θ, , , , ) (3. 2) H represents the desired position and orientation of the end-effectors.
The inverse kinematics aims for the solution of 6
0 1 2 3 4 5 6
T ( ,θ θ θ θ θ θ, , , , )=H. According to the forward kinematics, there are 6 equations with 6 unknown elements after simplifying of the equation set because of the simplicity of the link parameter of the BGT
µ-KRoS316 robot. The equations are nonlinear and transcendental, they are quite difficult to solve. Furthermore, for the general mechanism with 6 degrees of freedom the kinematics equations would be much more complex than the equations obtained by application of BGT µ-KRoS316 robot. The inverse kinematics can be simplified by restricting the workspace based on the following facts:
The specimen dimensions are rather small in comparison with the robot dimensions
The sensor is directed towards the specimen Elbow-up configuration
The first three joint coordinates are supposed to be positive
The problems of computing the inverse kinematics are preceded by dividing the inverse kinematics problem into the kinematics of position (the coordinates of the wrist) and the kinematics of orientation (orientation of the wrist with respect to the base frame taken in angles). Geometric approach and algebraic approach are applied respectively after the decoupling procedure. The results obtained from the inverse position kinematics have been used in the inverse orientation kinematics in order to solve the matrix equations. A coordinate interface is developed based on the both forward and inverse computation. From the computation process of the forward and inverse kinematics for the BGT µ-KRoS316 robot, we can conclude that it is very complex and time-consuming to proceed both forward and inverse robot kinematics computation in order to control the robot.
As far as KUKA robot is concerned, the forward and backward kinematic has been calculated automatically by the robot controller.
Resolvers are used as position sensing systems in KUKA robots. The resolvers are rigidly connected to the motors. The positions of the main and wrist axes (A 1 to A 3 and A 4 to A 6) are sensed by means of a cyclically absolute position sensing system featuring a resolver for each axis. Real-time coordinate can be obtained by accessing system variable of KUKA System software KRL (in section 4.1.4). A singularity problem may arise during the backwards transformation due to the difficulty of setting the axis angles unambiguously. Take the KUKA robot as example: it possesses they have 3 singularity positions: over-head singularity, hand axes singularity, streak location. Behavior of the robot can be settled unambiguously by setting system variable $SINGUL_POS [1-3] for these three positions, respectively.