Você está na página 1de 15

Select Country

Select Language

Search

Products | Software | Educational Framework | Arm Tutorials | Arm Tutorial 2

ARM TUTORIAL 2
Company

Press/Events Arm Tutorial 2 project build order

Products

Industrial Robots A) If you have built all the other projects from the previous solu
build the projects in Column A.
Controllers B) If you haven’t built any of the previous tutorial solutions, yo
in the order shown in Column B.
Software

And More Column A Column B

Robot Systems 1. Transformation 1. Articulated


2. KUKATutorial2MotionPlanning 2. Util
Downloads 3. KUKATutorial2Dashboard 3. Simulated
4. KUKAArm
Sectors/Solutions 5. Transform
6. KUKATuto
Customer Services
7. KUKATuto
Sales
Moving the end of arm to specific cartesian coordinates with
| | |

In arm tutorial 1, the robot was moved by setting target joint ang
and orientation of the end-of-arm nor could we move the robot

In practice it's probably more useful to know about the Cartesia


of the tool center point (TCP) than the knowledge about the join
makes sense to command the robot via Cartesian coordinate w
joint angles. E.g. in practice you want to command 'move the T

with orientation '.

As you may noticed all robot arms in the arm tutorials have n
use the notion 'end of arm' (EOA). As the last element of the ro
manipulator is called end-effector. An end-effector has usually
called tool center point (TCP).

So for an application point of view it makes sense to transform


cartesian coordinates with angular orientation and vice versa.
provides such transformations.

Fig.1: Direct vs. inverse kinematic transformation

The transformation from the robot joint angles to a cartesian co


called 'forward kinematic transformation' (Fig. 1). Mathematical
reason for it being easy is that we have no multiple solutions. W
and calculate from one frame to the next.

The backward transformation from a Cartesian coordinate with


angle configuration is called 'inverse kinematic transformation'
the following picture, multiple arm configurations are possible f
orientation. This impacts the complexity on the application des

E.g.: A programmer wants to move the TCP to a target position


inverse kinematic transformation service returns up to 8 possib
in terms of collision, minimized joint state changes which implie

Coding for Arm Tutorial 2:

In arm tutorial 2, we allow to define a destination for the end-of


this case, the motion planning service needs to find out the targ
to the newly introduced transformation service.

Arm Tutorial 2 Services Overview:

New services for arm tutorial 2:


· Armtutorial2Dashboard: User Interface with added fields
· Armtutorial2MotionPlanning:Calculates the arm motion and
LBR3
· Transformation: Calculates direct and inverse k

Handling a PTP move with a cartesian destination:

As soon as a ‘PTPMove’ object with a cartesian destination is p


the motion planning service, it will cause a request for an inver
This request is sent to the ‘_transformationPort’, which represe
request arrives at the ‘GetInverseKinematikHandler’ of the serv

The calculation of the inverse kinematic inside this handler as


kinematic is shown in the following sections.

It starts with the calculation of the general transformation matrix

Calculation of the transformation matrix for the kinematic c


GetTransformationMatrix)

This method computes the translation matrix frame to fram

Hartenberg parameter set is assigned to holding values for


Hartenberg parameter sets for all joints in Fig. 1 are listed in Ta

Joint Rotation
Fig. 2: Robot arm configuration Table1: Denavit-Hartenber

Using [14] and [15] we get the complete transformation from fra

Direct kinematics calculation (file class dirKinematik, metho

This method computes the position in cartesian coordinates an


TCP.

We start with the calculation of the transformation matrix

with the tool frame . Through a call of the method GetTrans


The TCP position can be read out directly from matrix :

The orientation in roll , pitch and yaw angles are calc

using [9]:

Inverse kinematics calculation though a geometric approac


InvKinematik)

From a given cartesian position and RPY - orientation of the TC


angles for a seven axis robot. For a single TCP position the me
configurations, see Fig. 2. For more information about the inver

Fig.3: Possible solutions of the inverse kinematics calculation


Joint 1 angle

Fig.4: Joint angle 1

Angle can be calculated from the position projection of fram


see Fig. 3. Hence at first we have to compute the position of
but the orientation of its subsequent frame. We use this propert
robot arm we have three twist joints: Joint 1, 4 and 6. As shown

influences just the orientation of the TCP, not its position. Throu

position vector . The unit vector points to the - axis of

the rotation sub matrix of :

Two solutions and yield to the same position

For the sake of clarity we use a simple geometric approach fo


Hence we didn't consider all special cases that might result in
function. An improvement to the algorithm is

Joint angle 3
Fig.5: Joint angle 3

Via the knowledge of we get angle which in turns lead


advantage of a twist joint property. As shown in Fig. 4, the angu
orientation of frame , not its position. Hence vector ca

from the translation part of :

We compute angle through the law of cosine:

Finally knowledge of offers two possible solutions for

Joint angle 2:
As shown in Fig. 5, angle can be computed via and

vector . For an easy calculation of we want to look at

has an x and z component. Therefore we transform from

matrix of :

Because is orthogonal we get its inverse through its trans

Fig.6: Joint angle 2

We get and through (see Fig. 5):

Finally all solutions for come out through:


Joint angle 5:

Joint angle 5 can be calculated through the inner product betw

Fig.7: Joint angle 5

The orientation of vector can be retrieved from the rotation

Matrix can be calculated via the angle results we already h

position of therefore we assume . Using the prior r


[14] and [15]:

Two arm configurations yield to the same position for frame

transformation for both situations resulting in and

Now we extract the rotation sub matrix from which column


frame 4:
With the column vector of we finally compute all solut

Joint angles 4 and 6:

The total rotation can be composed as follows:

Because matrix is orthogonal its inverse can also be calcul

Matrix is composed by three sequential rotations around

Hence we state:

Again we have to calculate two matrices to retrieve all possible


Using the relation angle

and of :

Now all possible solutions for can be calculated:

The same way we get all solution for through the elements

As you can see in Fig. 6, for and unlimited solutions a

case the mean value of and is assigned to and


Finally all angles are wrapped to the closed interval

At last the GetInverseKinematikHandler selects one of the eigh


possible arm configuration a quality function value

prior joint angle states into account:

The arm configuration with the smallest quality function value b


configuration:

Linear coordinate transformation

: = Basis vectors of the new coordinate system

: = Transformation matrix

Coordinate transformation matrix:

Coordinate transformation:

Orthogonality:
Coordinate system orientation:

Rotational transformation around axis x:

Rotational transformation around axis y:

Rotational transformation around axis z:

Roll, pitch and yaw (RPY) angles

RPY - rotation matrix (X, Y', Z'' rotation):

RPY angles from rotation a matrix :

Frames

: = Translation vector
: = Rotation matrix

: = Transformation matrix

: = Vector in frame :

: = Vector in frame :

Frame rotation ("Orientate via "):

Frame translation ("Translate by "):

Transformation matrix from frame to frame ("Orientat

Transformation from frame to frame :

Chained transformation from frame to frame (note tha


and must happen from left to right):

Denavit-Hartenberg transformation convention

As described in (1), four operations, two rotations and two tran

transformation matrix that transforms from frame to fram


chain based on the Denavit-Hartenberg convention:

Step 1: Rotation by link twist - Rotate frame aroun

parallel to axis of the next frame .

Step 2: Translation by link length - From its current posi

the direction of axis until comes to overlap with axis

Step 3: Rotation by joint angle - From its current position a

axis of the next frame until becomes parallel to a

Step 4: Translation by link offset - From its current positio

the direction of axis until its origin matches the origin of the

The total transformation matrix for frame to frame


the four single transformations. Note that the multiplication is n
from left to right:
Symbols:

:=

:=

:=

:=

: = Element row column of a matrix

: = Vector

References

(1) J. Craig, "Introduction to Robotics: Mechanics and Control


Publishing Co, 1986

(2) W. Weber, "Industrieroboter: Methoden der Steuerung und


2002

Back Recommend this page Print version Share |

KUKA
Roboter
GmbH
Phone:
Imprint
+49 821
/
Home | Sitemap | | Search | Contact 797-
Privacy
4000
Policy
Fax:
+49 821
797-
4040

CompanyKUKA
Robot
GroupCareerReference
CustomersKUKA
Worldwide
Press/EventsNewsExhibitions/EventsSpecials
ProductsIndustrial
RobotsControllersSoftwareAnd
MoreRobot
Systems
Customer
ServicesKUKA
CollegeRobotic
ConsultingTechnical
Support
ContactDownloads

©
Copyright
2010
KUKA
Roboter
GmbH
All
rights
reserved

Você também pode gostar