Roboter 6-Achsen

From FreeCAD Documentation
This page is a translated version of the page Robot 6-Axis and the translation is 80% complete.
Outdated translations are marked like this.
Tutorium
Thema
Roboter Arbeitsbereich
Niveau
Mittel
Zeit zum Abschluss
Unbekannt
Autoren
FreeCAD-Version
Beispieldateien
Siehe auch
None

Übersicht

In diesem Artikel geht es darum, einen Standard 6-Achsen Industrieroboter in FreeCAD zur Simulation in der Arbeitsbereich Roboter zu bringen.

Die Beschreibung folgt dem Denavit-Hartenberg Parameter System, wie es auch in John J. Craigs Buch "Introduction to Robotics" beschrieben ist.

Kuka Beispiel

Der Kuka KR-16

Kinematik

3D Anwendungen
Abschnitt Parameter Beschreibung
Basiskonfiguration

°

Abschnitt 1

°

°

Abschnitt 2

°

Abschnitt 3

°

Abschnitt 4

°

Abschnitt 5

°

Abschnitt 6

Dies führt zu folgender Tabelle:

Kinematiktabelle

1 q1 675 mm 260 mm -90°
2 q2 - 90° 0 mm 680 mm
3 q3 0 mm 0 mm 90°
4 q4 -670 mm 0 mm -90°
5 q5 0 mm 0 mm 90°
6 q6 -158 mm 0 mm 180°

Da die Kuka Roboter in der gezeichneten L-Position nicht alle Achsen auf 0 haben, müssen wir die Achse 2 & 3 um 90° ändern.


Kinematiktabelle

1 q1 675 mm 260 mm -90°
2 q2 0 mm 680 mm
3 q3 - 90° 0 mm 0 mm 90°
4 q4 -670 mm 0 mm -90°
5 q5 0 mm 0 mm 90°
6 q6 -158 mm 0 mm 180°

Im Datenblatt finden wir zusätzliche Informationen über die Achse:

Das führt zu dieser vollständigen Tabelle:

Kinematiktabelle

Axis Speed
1 0 675 260 -90 -185 185 156
2 0 0 680 0 -155 35 156
3 - 90 0 0 90 -130 154 156
4 0 -670 0 -90 -350 350 330
5 0 0 0 90 -130 130 330
6 0 -158 0 180 -350 350 615

Visuelle Darstellung

FreeCAD kann aus der Kinematik Tabelle ein grobes Bild erzeugen. Wenn du aber näher an der Realität sein willst, kannst du eine VRML Datei mit der Roboterform für die Simulation verwenden. Z. B. Kuka liefert für sein Modell VRML Dateien. Die VRML Datei wird bei der Erstellung des spezifischen Roboters in FreeCAD geladen. Damit FreeCAD die Achsen bewegen kann, müssen wir die VRML Datei bearbeiten und spezielle Transformationsknoten einfügen, die FreeCAD finden und verändern kann.

Wiederum am Beispiel des Kuka KR 16 gezeigt. Beginnend ab Zeile 1:

#VRML V2.0 utf8
#
# This VRML97 file was exported using eM-Workplace
# (c) Tecnomatix Technologies GmbH & Co. KG
#     Heisenberg-Bogen 1
#     D-85609 Aschheim-Dornach
#     GERMANY
#
#Background
#{
#   skyColor   [0.752941 0.752941 0.752941]
#}
Transform
{
   #rotation 1 0 0 -1.5707963
   #scale .001 .001 .001
   children
   [
           DEF AOBJ_0001_000_TRAFO Transform
           {
              children
              [
...

Du siehst, diese Datei wird mit einer Robotersimulationssoftware namens Tecnomatix exportiert. Entferne diesen Hinweis und füge eine URL ein, von der du diese Datei beziehst, denn Tecnomatix hat kein Copyright am Inhalt der Datei. Es ist nur ein Konverter! Als erstes entfernen wir den Hintergrund Knoten. Dann entferne den Rotation und Scale Knoten, um das Modell auf mm und Z senkrecht zu bekommen.

Ganz zum Schluss:

  ] }
  ] }
  ] }
  ]
}
#ROUTE SENS_04_OBJ.rotation_changed TO AXIS_04_OBJ.rotation
#ROUTE SENS_27_OBJ.rotation_changed TO AXIS_27_OBJ.rotation
#ROUTE SENS_32_OBJ.rotation_changed TO AXIS_32_OBJ.rotation
#ROUTE SENS_44_OBJ.rotation_changed TO AXIS_44_OBJ.rotation
#ROUTE SENS_46_OBJ.rotation_changed TO AXIS_46_OBJ.rotation
#ROUTE SENS_49_OBJ.rotation_changed TO AXIS_49_OBJ.rotation
#DEF AnySIMTimer TimeSensor
#{
#   cycleInterval 1.000000
#   loop          TRUE
#}

Kommentiere den TimeSensor und die 6 Strecken aus. Diese 6 Zeilen geben dir einen Hinweis, wo die tatsächlichen Achsen des Roboters sind! Suche zunächst nach "AXIS_04_OBJ", das bringt dich an diese Stelle:

...
    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
              [
...

Du musst genau über der Definition dieses Knotens die Zeile "DEF FREECAD_AXIS1 Transform { rotation 0 1 0 0 children [" der der Anker für FreeCAD ist, um die Achse zu bewegen.

Mache nun das gleiche für FREECAD_AXIS2, FREECAD_AXIS3, FREECAD_AXIS4, FREECAD_AXIS5 und FREECAD_AXIS6. Vergiss die schließenden Klammern am Ende der Datei nicht und du bist fertig!

Du kannst die VRML laden, indem du den Roboter instanziierst:

App.activeDocument().addObject("Robot::RobotObject","Robot")
App.activeDocument().Robot.RobotVrmlFile = "C:/_Projekte/FreeCAD0.9_build/mod/Robot/Lib/Kuka/kr16.wrl"

was dir dieses Ergebnis liefern sollte:

KR 210

Data sheet

Kinematiktabelle

Axis Speed
1 0 750 350 -90 -185 185 156
2 0 0 1250 0 -155 35 156
3 - 90 0 0 90 -130 154 156
4 0 -1100 0 -90 -350 350 330
5 0 0 0 90 -130 130 330
6 0 -230 0 180 -350 350 615


KR 500

Data sheet

Kinematiktabelle

Axis Speed
1 0 1045 500 -90 -185 185 156
2 0 0 1300 0 -155 35 156
3 - 90 0 0 90 -130 154 156
4 0 -1025 0 -90 -350 350 330
5 0 0 0 90 -130 130 330
6 0 -250 0 180 -350 350 615

Links