VRML Preparation for Robot Simulation/it

Questo tutorial spiega come utilizzare FreeCAD e l'ambiente Simulazione Robot per simulare i movimenti dei robot a 6 assi. Il tutorial si concentra sulla creazione del file VRML utilizzato per la visualizzazione. La base del file VRML è un modello di FreeCAD. La versione di FreeCAD utilizzata è la 0.11.4252ppa1 in Ubuntu 32 bit.

Aprire un file o crearne uno con FreeCAD
Il tutorial si basa su un file STEP di un robot Stäubli TX40 (TX40-HB.stp). È possibile scaricare il file file TX40-HB.stp da Stäubli. Anche se non ho ancora avuto tempo di controllare, il metodo dovrebbe valere anche per un modello realizzato completamente in FreeCAD. Dopo aver aperto il file, si dovrebbe ottenere questo:



Notare che, nell'importazione, il robot è composto di 8 forme, direttamente sulla radice dell'albero del documento. La struttura del file VRML esportato può cambiare se sono utilizzati i gruppi. Le forme sono ordinate a partire dalla base allo strumento. L'ultima forma contiene gli assi di rotazione di tutti gli assi del robot.

I nomi delle forme sono attribuiti in modo correlativo da FreeCAD, (dato che per ora (marzo 2011) FreeCAD non importa i nomi inclusi nei file STEP):

In questa importazione, cambiare la modalità di visualizzazione, “Display Mode”, di ogni forma, ad eccezione di TX40_HB007, da "Flat Lines" a "Shaded" per dare un buon aspetto all'esportazione VRML. Ho anche cambiato i colori in [245, 196, 0] e [204, 204, 204] per farli corrispondere meglio al giallo di Stäubli. Nascondere TX40_HB007 perché contiene gli assi di tutti i giunti e non può essere smontato.

Misure delle caratteristiche geometriche
Per costruire la tabella di Denavit-Hartenberg (vedere 6-Axis_Robot ) e per preparare il file VRML, è necessario ottenere le caratteristiche del Robot. Per ora, lo strumento di misurazione di FreeCAD non è ancora pronto, è possibile utilizzare gli assi inclusi in TX40_HB007 (le coordinate sono indicate in basso a sinistra quando si punta un oggetto con il mouse), oppure si deve utilizzare la console Python per ottenere delle informazioni sulla geometria. Notare che la Tabella DH è necessaria solo quando si ha bisogno di usare la cinematica inversa, ad esempio, per ottenere le coordinate cartesiane o guidare il robot con coordinate cartesiane.

La Tabella DH per questo robot è la seguente (mm, gradi e gradi/s) :

Il file csv è quindi:

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: