VRML Preparation for Robot Simulation/de

Übersicht
Dieses Tutorium erklärt, wie man FreeCAD und den Arbeitsbereich Roboter Simulation um die Bewegungen eines 6-achsigen Serienroboters zu simulieren. Das Tutorium konzentriert sich auf die Erstellung der als Visualisierung verwendeten VRML-Datei. Die Basis der VRML Datei ist ein FreeCAD Modell. Die verwendete Version von FreeCAD ist 0.11.4252ppa1 auf Ubuntu 32bit.

Öffne eine Datei oder erstelle eine mit FreeCAD
Das Tutorium basiert auf einer STEP Datei eines Stäubli TX40 (TX40-HB.stp). Du kannst die Datei von Stäubli herunterladen. Obwohl ich immer noch nicht die Zeit hatte, dies zu überprüfen, sollte die Methode auch auf ein vollständig in FreeCAD erstelltes Modell anwendbar sein. Nachdem du die Datei geöffnet hast, solltest du dies erhalten:



Beachte, dass der Roboter beim Import aus 8 Formen besteht, die sich direkt an der Wurzel des Dokumentenbaums befinden. Die Struktur der exportierten VRML Datei kann sich ändern, wenn Gruppen verwendet werden. Die Formen sind von der Basis bis zum Werkzeug geordnet. Die letzte Form enthält die Drehachsen aller Roboterachsen. Die Korrelation Formname - Teilename Teilname wird erteilt durch (vorläufig (März 2011) importiert FreeCAD die in STEP Dateien enthaltenen Namen nicht):

Ändere für diesen Import den " Darstellungsmodus" jeder Form, mit Ausnahme von TX40_HB007, von "Flache Linien" in "Schattiert", damit der VRML Export gut aussieht. Ich änderte auch die Farben in [245, 196, 0] und [204, 204, 204], um dem Gelb von Stäubli besser zu entsprechen. Blende TX40_HB007 aus, weil es die Achsen aller Gelenke enthält und nicht auseinandergenommen werden kann.

Measure geometric characteristics
In order to build the Denavit-Hartenberg table (see Robot 6-Axis) and prepare the vrml file, you need to get characteristics of the robot. For now, the measurement tool of FreeCAD is not ready, you can use the axes included in TX40_HB007 (the co-ordinates are indicated on the bottom left when you point an object with the mouse) or you have to use the Python console to get some information about the geometry. Note that the DH-table is only required if you need to use the inverse kinematics, i.e. get the Cartesian coordinates or drive the robot with Cartesian coordinates. The DH-table for this robot is the following (mm, deg and deg/s):

The csv file is then:

a, alpha, d  , theta, rotDir, maxAngle, minAngle, AxisVelocity 0,   -90, 320,     0,      1,      180,     -180, 555 225,     0,  35,   -90,      1,      125,     -125, 475 0  ,    90,   0,    90,      1,      138,     -138, 585 0  ,   -90, 225,     0,      1,      270,     -270, 1035 0  ,    90,   0,     0,      1,    133.5,     -120, 1135 0  ,     0,  65,     0,      1,      270,     -270, 1575

Export to VRML
Export the document to a VRML file. The structure of the VRML file is the following:

You can notice that we have 8 independent groups corresponding to the 8 shapes.

Preparation of the vrml file
All shapes in the VRML file are expressed in the base frame, independently from each other. For the Robot Simulation Workbench, we need to create a structure where a movement of a shape induces a movement of all shapes situated afterwards in the structure. The placement of the shapes will be relative to the preceding shape, so we need to include some translations from the absolute reference system to the relative one. The translations are described in the following picture:



With
 * A=(0, 0, 168)
 * B=(0, 107.8, 320)
 * C=(0, 104.15, 545)
 * D=(0, 35, 601)
 * E=(0, 35, 770)
 * F=(0, 35, 835).

Let's take the example of axis 4 between ELBOW and FOREARM, situated at D=(xd, yd, zd). The anchor for the FreeCAD axis is This corresponds to a rotation about the y-axis. In the CAD model, the rotation is about the z-axis. Thus, we need to a rotation about the x-axis of $$\pi$$ before the FreeCAD axis definition and of $$-\pi$$ after it. Also, a translation of (-xd, -yd, -zd) is needed just before the Group corresponding to the definition of FOREARM to express it in the relative reference frame centered at D. This means that a translation of (xd, yd, zd) must be inserted before the first rotation. At the end, the VRML file from the definition of ELBOW to the definition of FOREARM looks like this: At the end of the document, the appropriate closing brackets must be inserted: for each of the 6 axes. Eventually, the document looks like this (I don't know if I can link the file here because of copyrights): Here is a patch to obtain the VRML file suitable for robot simulation: