Robot 6-Axis/it

Questo articolo descrive come importare in FreeCAD un robot industriale standard a 6 assi a scopo di simulazione.

La descrizione è conforme alla Convenzione di Denavit-Hartenberg per i parametri, come descritto anche nel libro Introduction to Robotics di John J. Craigs.

Cinematica
Questo porta alla seguente tabella:

Dato che i robot Kuka non hanno tutti gli assi a 0 nella posizione a L disegnata, si devono modificare gli assi 2 e 3 di 90 °.

Nella scheda tecnica si trovano ulteriori informazioni sugli assi:



Questo permette di compilare la tabella completa:

Rappresentazione visiva
FreeCAD può generare una soddisfacente rappresentazione visiva della tabella cinematica. Se si desidera una visione più vicina alla realtà è possibile utilizzare per la simulazione un file VRML con la forma del robot. Ad esempio, Kuka offre dei file VRML per i suoi modelli. In FreeCAD il file VRML viene caricato durante la creazione di un robot specifico. Per consentire a FreeCAD di muovere gli assi, si deve editare il file VRML e inserire degli speciali nodi di trasformazione che FreeCAD possa trovare e manipolare.

Anche questo esempio si riferisce a un Kuka KR 16. Cominciando dalla riga 1:

# # #{ #} Transform {   #rotation 1 0 0 -1.5707963 #scale .001 .001 .001 children [           DEF AOBJ_0001_000_TRAFO Transform {              children [ ... Si vede che questo file è stato esportato con un software di simulazione di robot chiamato Tecnomatix. Rimuovere questa nota e inserire l'URL da cui si è ottenuto il file, perché Tecnomatix non ha nessun copyright sul contenuto del file. E' solo un convertitore! Iniziare con il rimuovere il nodo Background. Quindi rimuovere i nodi rotation e scale per ottenere il modello in mm e l'asse Z verticale.
 * 1) VRML V2.0 utf8
 * 1) This VRML97 file was exported using eM-Workplace
 * 2) (c) Tecnomatix Technologies GmbH & Co. KG
 * 3)     Heisenberg-Bogen 1
 * 4)     D-85609 Aschheim-Dornach
 * 5)     GERMANY
 * 1) Background
 * 1)   skyColor   [0.752941 0.752941 0.752941]

Poi, proprio alla fine: ] }  ] }   ] }   ] } #{ #}
 * 1) ROUTE SENS_04_OBJ.rotation_changed TO AXIS_04_OBJ.rotation
 * 2) ROUTE SENS_27_OBJ.rotation_changed TO AXIS_27_OBJ.rotation
 * 3) ROUTE SENS_32_OBJ.rotation_changed TO AXIS_32_OBJ.rotation
 * 4) ROUTE SENS_44_OBJ.rotation_changed TO AXIS_44_OBJ.rotation
 * 5) ROUTE SENS_46_OBJ.rotation_changed TO AXIS_46_OBJ.rotation
 * 6) ROUTE SENS_49_OBJ.rotation_changed TO AXIS_49_OBJ.rotation
 * 7) DEF AnySIMTimer TimeSensor
 * 1)   cycleInterval 1.000000
 * 2)   loop          TRUE

Togliere il segno di commento a TimeSensor e alle 6 rotte. Questo 6 righe indicano dove si trova l'asse effettivo del robot! Ricercare AXIS_04_OBJ e arrivare a questa parte del file: ...    Transform { rotation 1 0 0 1.570796 children [ DEF SENS_04_OBJ-0001 CylinderSensor {           diskAngle 1.570796 minAngle -3.228859 maxAngle 3.228859 offset   0.000000 }      DEF FREECAD_AXIS1 Transform { rotation 0 1 0 0 children [ DEF AXIS_04_OBJ-0001 Transform {        children [        Transform { rotation 1 0 0 -1.570796 children [ DEF AOBJ_0001_003_TRAFO Transform {              rotation 1.000000 0.000000 0.000000 3.141593 translation -600.000000 500.000000 300.000000 children [ ... Dove si deve inserire immediatamente sopra la definizione di questo nodo la riga "DEF FREECAD_AXIS1 Transform { rotation 0 1 0 0 children [" che è l'ancora che FreeCAD utilizza per spostare questo asse.

Poi fare la stessa cosa per FREECAD_AXIS2,FREECAD_AXIS3,FREECAD_AXIS4,FREECAD_AXIS5 e FREECAD_AXIS6. Non dimenticare le parentesi di chiusura alla fine del file e il gioco è fatto!

Ora è possibile caricare il file VRML per installare il robot con: App.activeDocument.addObject("Robot::RobotObject","Robot") App.activeDocument.Robot.RobotVrmlFile = "C:/_Projekte/FreeCAD0.9_build/mod/Robot/Lib/Kuka/kr16.wrl" Che dovrebbe dare questo risultato:

KR 210
Data sheet

KR 500
Data sheet